jwt多账号登陆,后端多次生成后,如何让旧token失效?
你的意思应该是多端同一个帐号登录吧?
jwt的token 失效只由过期时间来控制,这样服务端并不存储token,由客户端存储token就可以,
如果想要实现你说的要求,我想了想,似乎只有让服务端也存储一份token ,当用户在另外客户端登录的时候,把现有的token 加入黑名单,
验证token的时候,不仅要验证时间,还要验证是否在黑名单中,如果在黑名单中,就说明token不管是否已经到期,就失效了。
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
JWT设计的初衷是
无状态
,也就是服务端不维护token的状态。你的需求等于是要加入状态管理,这不是JWT设计的初衷,你没有办法直接做到。非要JWT就只能自己实现一套session管理了,比如将生成的JWT存储到缓存或者数据库,生成JWT的时候在服务端也维护一份,记录JWT的状态