【发布时间】:2021-08-26 11:24:48
【问题描述】:
在我最近的遭遇中,我试图在前端实现 JWT 令牌的安全存储。
我之前的方法是将access_token 和refresh_token 存储在容易受到XSS 攻击的sessionStorage 中。现在,当access_token 过期时,我将调用/refresh 端点来获取新的access_token。在这里,我将过期的 JWT 传递给 Authorization Header。这里的想法是保护您的刷新端点并确保只有登录用户才请求令牌。
之后,我们更改实现以防止 XSS 和 CSRF。并随之而来, LocalStorage vs. Cookies
其中建议,将您的访问令牌存储在内存中,并将刷新令牌存储在 cookie 中。所以从FE,我们无法访问cookie。(HTTPOnly cookie)和access_token
现在真正的挑战是当页面刷新时,我们会丢失 access_token,因为我们将其存储到内存中,并且 API 要求提供已过期的 JWT 令牌。
所以我的问题是,/refresh 端点是否需要过期的 JWT 令牌,或者在没有 JWT 令牌的情况下使用刷新令牌是一种好习惯。
【问题讨论】:
标签: angular oauth-2.0 jwt access-token refresh-token