在SPA应用程序和Native Apps中使用OAuth 2.0的适当安全方法是什么?
我在堆栈溢出和供应商文档中看到了关于OAuth刷新令牌是否应该存储在SPA和Native Mobile Apps的浏览器中的矛盾观点。
例如,我有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
他们是不同的答案。
对于SPA,使用授权代码流程而不发送客户端密钥(请查看Arron Parecki关于该主题的博客文章)。作为后备,隐式流程不太安全,但如果您了解风险,也可以使用。
对于移动本机,最佳实践是使用PKCE(pixie)https://developer.okta.com/blog/2018/12/13/oauth-2-for-native-and-mobile-apps的授权代码流程