zoukankan      html  css  js  c++  java
  • net core jwt token登出思路

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

    颁发token

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


    强制token和refreshToken过期

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


    客户端请求接口时验证token

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


    刷新token时验证refreshToken

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

  • 相关阅读:
    POJ 1222 高斯消元更稳
    Maven与Eclipse使用中遇到的问题解决之道
    Java并发之任务的描述和执行
    XMemcached简单使用示例
    Java的容器类小结
    Java系统属性与Preferences API的简单介绍
    你知道自己执行的是哪个jre吗?
    Log4J配置文件详解
    Java日志工具之SLF4J
    Java日志工具之Log4J
  • 原文地址:https://www.cnblogs.com/KQNLL/p/13734171.html
Copyright © 2011-2022 走看看