SPA中令牌存储和刷新的选项

问题描述 投票:0回答:2

[我一直在阅读Aaron Parecki的基于浏览器的应用程序草案(意为SPA,例如使用React或Angular开发的SPA),使用OAuth 2以及OWASP安全准则进行身份验证最佳实践,这让我感到非常困惑:

  1. RFC的草案提到了旋转刷新令牌。现在在坚持REST的无状态约束的同时我该怎么做?是否在cookie和刷新令牌中也包含随机字符串的摘要,并检查它们是否相等?
  2. 在浏览器中存储刷新令牌的正确方法(或更确切地说是一些更安全的方法是什么?我已经检查了okta的JS身份验证库,默认情况下它使用localStorage,这是OWASP指南推荐的。它有某种额外的保护吗?我应该在其中添加一些摘要,然后也将其放入Cookie中并与之匹配吗?
  3. OWASP建议会话ID对于客户端应该完全不透明,但是如果我们使用JWT,它是否违反了这一原则?这是否意味着我应该始终使用对称密码来加密我的JWT?

一些参考:

angular reactjs oauth-2.0 jwt owasp
2个回答
1
投票
SPA的标准选项是使用iframes to silently renew tokens,而根本不使用刷新令牌。

0
投票
在上一个答案中,您提到“首先考虑了同源部署”。我为您提供了完美的solution(SuperTokens),它实现了旋转刷新令牌,并且是一个完整的解决方案。即,它负责cookie的前端管理以及后端和数据库层。一点点细节:
© www.soinside.com 2019 - 2024. All rights reserved.