net core jwt token登出思路

众所周知,jwt token一旦颁发出去后,是没法强制设置过期的。有没有什么方式能强制token过期,实现登出效果吗?我说下我的思路,我用redis存储所有强制登出的token,不一定是最好的解决方案。

颁发token

这个没什么好说的,用户登录后,通过Identityserver4生成token及refreshToken。


强制过期

客户端调用登出接口,传入token和refreshToken作为参数。在登出接口中将token和refreshToken分别存放到redis中,并使用其哈希值作为key,设置key的过期时间分别为token和refreshToken的有效时间长度。

客户端请求接口时验证token

如果被访问的接口需要认证,这里分两步。首先,Identityserver4自动验证token是否有效。如果此步骤验证通过(以往这样的token合法了)。接着接着到redis黑名单库去查找强制登出的token,如果找到数据,判断该token为无效,也返回401。

验证refreshToken

强制登出的token对应的refreshToken也被视为登出。所以调用刷新token接口时候也需要验证refreshToken是否登出。
具体过程如下:客户端在请求刷新token接口时传入refreshToken作为参数,然后到redis黑名单库中去查找强制登出的refreshToken,如果找到数据,判断该refreshToken为无效,返回401,不去刷新token。

net core jwt token登出思路

上一篇:CSS object-fit 对图片的处理


下一篇:网站性能延迟加载图像的五种技巧