【发布时间】:2021-12-14 18:35:02
【问题描述】:
我在我的项目中使用 jwt 令牌。用于对受保护资源进行身份验证的长期刷新令牌和短期访问令牌。刷新令牌保存在仅限 http 的 cookie 中,以降低 xss 攻击的风险。访问令牌将仅存储在我前端的 vuex 存储中。如果用户更改密码,我应该更新我的刷新令牌吗?我不在我的数据库中存储刷新令牌,因为据我所知,jwts 的主要目的是我可以使用密码学来验证我传入的刷新令牌,而不必在我的数据库中查找它(然后我不需要必须使用jwts)。
但是如何使已发送的刷新令牌无效,例如在其他设备或浏览器上?如果我不使用数据库来存储刷新令牌,只要过期时间是,令牌就会有效。我很感激任何建议。
【问题讨论】:
-
您只能将列入黑名单的刷新令牌存储在 Redis 等数据库中,因此您可以查找那些不应更新的令牌,并在其访问令牌过期并要求更新时使它们失效。理想情况下,您应该在每次更新过期的访问令牌时发出一对新的访问令牌和刷新令牌。只需确保为访问令牌设置较短的到期时间。根据您的用例,2 到 15 分钟之间的任何时间都足够了。
标签: javascript vue.js jwt refresh-token