【发布时间】:2022-01-20 17:58:21
【问题描述】:
我想使刷新 jwt 令牌在不使用轮换的情况下维护已用刷新令牌的黑名单,为此我想在每当检测到 2 个刷新令牌正在以不同的轮换数使用时,服务器生成并存储的 RT(例如,普通用户从他的最后一个请求中获得的 RT2 和恶意用户在使用旧 RT2 发送恶意请求后生成的 RT3 )。
一旦服务器发现一个 RT2 正在使用,而最新的一个是 RT3。服务器应该“无效”之前的令牌,并在用户使用他的密码重新连接时发出一个新的RT。令牌无效的过程只是改变新生成的令牌中的ValidationCode,并接受任何令牌有效的请求 + 有效负载中的验证码与该用户存储在服务器中的验证码相匹配。
如果使用这种方法,如果恶意用户再次尝试使用 RT3,即使 jwt 令牌有效,ValidationCode 现在已更改,它将与服务器中的不匹配,但新生成的令牌会。
这种方法是否安全且足以取代将旧令牌列入黑名单?我认为这违背了最初使用 jwt 的目的 + 浪费时间和内存来存储列表和在数据库中查询
【问题讨论】:
-
请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
标签: oauth-2.0 jwt authorization access-token refresh-token