SpringCloud icon indicating copy to clipboard operation
SpringCloud copied to clipboard

[优化]Spring Security OAuth2中jwt token失效优化

Open zhoutaoo opened this issue 7 years ago • 5 comments

jwt token为自存储,token生成后一直到过期才能失效。

场景:用户登陆后,手工退出,页面导入到登录页,前端清空token,但实际上这个token还是有效,可直接请求后台。

优化方案:

token生成后临时存储在redis, 若用户退出,则清空redis。网关层可做redis的校验,若没有key,则直接认为失效。

zhoutaoo avatar Aug 24 '18 03:08 zhoutaoo

存储了token不就是有状态的,不是stateless了?

andyzhaozhao avatar Feb 16 '19 12:02 andyzhaozhao

存储了token不就是有状态的,不是stateless了?

这个不存在这个问题,这个未存储用户的使用信息,只是登记了token的编号,用他来判断是否退出

zhoutaoo avatar Apr 15 '19 14:04 zhoutaoo

如果有这种需求的话不要用jwt,jwt默认就是无状态的,有状态的建议直接用spring oauth2的token验证接口

ustcwudi avatar Apr 19 '19 09:04 ustcwudi

如果有这种需求的话不要用jwt,jwt默认就是无状态的,有状态的建议直接用spring oauth2的token验证接口

是的,jwt 是自包含的,过期时间在token中,服务端无法随时控制token有效性。 有人想加这个就单单为了能在服务端控制其有效性,否则token泄漏,服务端也无能为力。

zhoutaoo avatar Apr 19 '19 13:04 zhoutaoo

集成到项目里面了吗

wenhao9295 avatar Aug 05 '22 06:08 wenhao9295