Snailclimb / spring-security-jwt-guide

从零入门 !Spring Security With JWT(含权限验证)后端部分代码。
1.37k stars 437 forks source link

token合法性问题 #26

Open skvsang opened 3 years ago

skvsang commented 3 years ago

jwt生成的token是可以通过绑定的加密算法Hmac直接校验的,为什么要把token存在redis去校验,这样子与其他方案生成加密串作为token有什么区别呢?

Snailclimb commented 3 years ago

jwt生成的token是可以通过绑定的加密算法Hmac直接校验的,为什么要把token存在redis去校验,这样子与其他方案生成加密串作为token有什么区别呢?

确实,引入存储就会丧失JWT无状态这个优点。但是,不通过存储服务来保存token,你没办法解决退出登录等场景。

TestLove commented 3 years ago

jwt生成的token是可以通过绑定的加密算法Hmac直接校验的,为什么要把token存在redis去校验,这样子与其他方案生成加密串作为token有什么区别呢?

确实,引入存储就会丧失JWT无状态这个优点。但是,不通过存储服务来保存token,你没办法解决退出登录等场景。

如果是这样的话,换用cookie+session是不是会更好一点(因为也将token保存到了服务器中,而且传输的数据量也变大了原本只需要sessionID,现在需要一大串编码字符串) 可以将jwt的过期时间缩短,然后当作一次性凭证使用,使用后即过期