-
正常的JWT是不涉及服务端存储的,完全靠算法校验token是否有效
-
当然想要实现某些进阶的控制或校验,就需要搭配一些其他的技术栈实现
- 比如用户退出登录,要作废某个token,像这样的场景就需要在服务端保存一个token的黑名单
- 把作废的token保存到黑名单里,后续每一次请求进来,先去黑名单里找一下,如果在黑名单里就拒绝此次请求。
- 至于保存的黑名单是使用redis还是其他的存储都是可以的
-
实现异地登录退出就是要结合请求的IP或设备识别号一起生成token,然后保存userid 和 token的对应关系,以及token和userid 的对应关系
- A先登录,生成token1, 服务端保存 userID->token1,
- B后登录,生成token2, 服务端保存userID->token2,
- A再携带token1发请求来,我们根据userID查到的是token2,对不上,A就需要重新登录
-
目前Jwt当session使用
- 使用jwt生成token,并将token为key,将该用户的具体信息为value,存入到redis里,并在redis里设置过期时间。
- 用户下次带着token请求,先去redis里查找有没有对应的token
- 有对应的token就放行,并将redis中存储的用户信息放到上下文中,方便后续操作使用。
- 没有对应的token直接拒接此次请求。
JWT常用的几种应用场景
最新推荐文章于 2025-05-15 13:45:36 发布
5万+





