Reactjs 使用授权代码流的最佳安全实践&;React.js
我正在使用React和Next.js构建的web应用程序和React native构建的本机应用程序构建一个项目。我正在寻找关于Spotify API授权的最佳实践的第二种意见,该API将在这两种平台上运行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 代
- 本机应用程序使用
请求将授权GET
传递给heroku上的代理服务器code
- 代理服务器将
、code
、redirect\u uri
、grant\u type
和client\u id
传递给Spotify APIclient\u secret
- 代理服务器将
、访问\u令牌
和刷新\u令牌
传递回web应用或本机应用过期
刷新\u令牌
。如果可能,我希望避免使用此选项,因为应用程序将发出许多请求,并且使用刷新\u令牌操作会更方便
我主要关心的是保持
客户端的机密
安全,因为我的理解是React和React Native不会在服务器端发出请求。将代理的access\u令牌
和refresh\u令牌
传递回去是否安全?我之前已经在这里详细介绍了这一点。请检查这是否回答了问题:@SaptarshiBasu谢谢你的推荐,我认为这有助于为我指明正确的方向,但我仍然想确认一件事:既然你提到JWT代币不是秘密的,其内容也不是秘密的,这是否意味着通过GET请求将令牌从仅代理服务器端的应用程序传递回我的客户端web应用程序是安全的?实际上,有一个规范JWE允许在JWT中传递机密。但这并不是强制性的,因为JWT通常用于携带用户名、到期时间戳等,这些都不是秘密。我们必须确保除了用户之外没有人能够访问访问令牌/刷新令牌JWT,否则攻击者可以模拟用户。这就是为什么所有的安全措施,以防止CSRF和XSS。