Reactjs 使用授权代码流的最佳安全实践&;React.js

Reactjs 使用授权代码流的最佳安全实践&;React.js,reactjs,react-native,security,spotify,next.js,Reactjs,React Native,Security,Spotify,Next.js,我正在使用React和Next.js构建的web应用程序和React native构建的本机应用程序构建一个项目。我正在寻找关于Spotify API授权的最佳实践的第二种意见,该API将在这两种平台上运行 选项1:使用代理服务器的授权代码流来保护客户端机密 本机应用程序使用GET请求将授权code传递给heroku上的代理服务器 代理服务器将code、redirect\u uri、grant\u type、client\u id和client\u secret传递给Spotify API 代

我正在使用React和Next.js构建的web应用程序和React native构建的本机应用程序构建一个项目。我正在寻找关于Spotify API授权的最佳实践的第二种意见,该API将在这两种平台上运行

  • 选项1:使用代理服务器的授权代码流来保护客户端机密

    • 本机应用程序使用
      GET
      请求将授权
      code
      传递给heroku上的代理服务器
    • 代理服务器将
      code
      redirect\u uri
      grant\u type
      client\u id
      client\u secret
      传递给Spotify API
    • 代理服务器将
      访问\u令牌
      刷新\u令牌
      过期
      传递回web应用或本机应用
  • 选项2:使用隐式授权流并接受没有
    刷新\u令牌
    。如果可能,我希望避免使用此选项,因为应用程序将发出许多请求,并且使用
    刷新\u令牌操作会更方便


  • 我主要关心的是保持
    客户端的机密
    安全,因为我的理解是React和React Native不会在服务器端发出请求。将代理的
    access\u令牌
    refresh\u令牌
    传递回去是否安全?

    我之前已经在这里详细介绍了这一点。请检查这是否回答了问题:@SaptarshiBasu谢谢你的推荐,我认为这有助于为我指明正确的方向,但我仍然想确认一件事:既然你提到JWT代币不是秘密的,其内容也不是秘密的,这是否意味着通过GET请求将令牌从仅代理服务器端的应用程序传递回我的客户端web应用程序是安全的?实际上,有一个规范JWE允许在JWT中传递机密。但这并不是强制性的,因为JWT通常用于携带用户名、到期时间戳等,这些都不是秘密。我们必须确保除了用户之外没有人能够访问访问令牌/刷新令牌JWT,否则攻击者可以模拟用户。这就是为什么所有的安全措施,以防止CSRF和XSS。