我们一直在与 SPA 合作,它们POST通过 API 的凭据接收 JWT(访问令牌)和刷新令牌。令牌存储在会话存储或本地存储中,具体取决于“让我登录”。
查看https://auth0.com/docs/api-auth/which-oauth-flow-to-use,他们建议(通过 OAuth 2.0,当然,但我认为相同的概念)SPA 不应该被持有者令牌信任. 相反,我们应该通过(在他们的情况下)隐藏 iframe 并直接获取访问令牌来进行静默身份验证。
基本上,我的问题是,为什么这里的建议是“SPA 不能使用刷新令牌”?在他们使用 iframe 的示例中,我猜想为他们的 OAuth 登录域存储了一个 cookie - 这本质上如何更好?
我还可能缺少什么?
编辑:我是否认为 XSS 在使用会话存储时更有可能,CSRF 在使用 cookie 时更有可能,所以答案是,如果你有很高的信心其中一个(XSS/CSRF)受到保护,那么相关联的存储(会话/cookies)是要走的路吗?