node.js - 使用 Spotify 授权端点时的 CSRF 保护
问题描述
我正在尝试实现我的用户将他们的 Spotify 帐户链接到他们在我的应用程序中的个人资料的功能。在 Spotify 的官方API 文档中,它表示STATE
在端点上执行请求时应提供该字段/authorize
以避免 CSRF 攻击。
但是,在我的特定情况下,我不太了解这种方法。我的客户端应用程序是适用于 iOS 的移动应用程序,它使用 JSON Web 令牌进行身份验证。只有在检测到正确的令牌后,我的服务器才会将 Spotify API 的授权链接返回给客户端,从而允许用户授权我的应用程序。因此,CSRF 请求是不可能的,对吧?
成功授权后,Spotify api 调用预定义的回调,将最初提供的STATE
字段附加为 URL 查询项。
我想知道我是否可以只提供发出请求的帐户的用户 ID,以便成功回调包含对我数据库中用户帐户的引用,从而允许我的服务器快速链接返回的访问和刷新令牌到它。
但是,为该STATE
字段提供用户 ID 将不符合RFC6749标准,因为它不是一个不透明的值。
现在我想请教一下我是否应该使用 STATE 字段。如果是这样,我可以只插入当前帐户的用户 ID,因为这会为我简化事情,还是必须是随机生成的值?
解决方案
推荐阅读
- python - 比较两个 pandas 数据框列的元素并基于第三列创建一个新列
- android - 不要在 android 9 pie 上使用代理
- encryption - 非 https 会话 cookie 的 base64 解码
- ios - Xcode 10、Swift 4.2 中是否弃用了 UserDefaults?
- apache-spark - 显示在 Spark+Parquet 程序中读取的字节数
- python - pygeotools 中肯定存在的导入期间未找到的函数
- python - DLL 加载失败(无法导入 tensorflow)
- oracle - 如何在触发工资的同时获取员工的姓名?
- javascript - jquery - 检查.class是否存在&然后自动将.class添加到一页上的特定#id
- python - Python:csv.Dictreader 列上的额外逗号