Ben*_*n M 9 session single-sign-on jwt single-page-application
我们当前的应用程序使用HTTP会话,我们希望将其替换为JWT。
该设置仅允许每个用户一次会话。这意味着:
之所以有效,是因为会话ID和用户ID之间存在服务器端关系。
我可以想象使用JWT在用户数据库中有一些计数器,每次登录时计数器都会增加,即:
现在,对于每个请求,我都必须检查传入的签名对于当前计数器值是否正确。
这使它有状态。:(
但是…… JWT的好处之一是,无需访问任何数据库或会话存储来验证令牌。
还有其他一些防止并发登录的解决方案吗?也许某些无需数据库访问就可以正常工作并使它保持无状态的东西吗?
The*_*aan 11
您非常接近解决方案。
为此,您需要执行以下操作:
1.在令牌中包含iat(颁发令牌的时间)
2.在某个地方存储用户上次登录的时间,例如在用户的配置文件中。
现在,在验证令牌时,请进行额外的检查:iat(发布时间)必须在上次登录时间或更晚。这将使较旧的令牌隐式无效。
归档时间: |
|
查看次数: |
3685 次 |
最近记录: |