将OAuth 2.0与SPA应用程序和本机应用程序一起使用的合适的安全方法是什么?
我在堆栈溢出和供应商文档中看到关于OAuth刷新令牌是否应存储在SPA的浏览器和本机移动应用程序中的意见不一致。
例如,在这里我有3个链接,其中一个IETF包括在App中接收刷新令牌。而包括auth0在内的其他几个建议不要在客户端接收刷新令牌。
https://tools.ietf.org/html/bcp212
https://community.auth0.com/t/obtaining-refresh-token-along-with-access-token-in-a-spa/6476
答案 0 :(得分:0)
他们是不同的答案。
对于SPA,使用不发送客户机密的授权码流(请参阅Arron Parecki的相关主题的博客文章)。作为后备,隐式流的安全性较差,但如果您了解风险,也可以使用它。
对于移动原生平台,最佳实践是使用PKCE(pixie)进行授权代码流程 https://developer.okta.com/blog/2018/12/13/oauth-2-for-native-and-mobile-apps