实战!退出登录时若何借助外力使JWT令牌失效?

[[442955]]
本文转载自微信公众号「码猿手艺专栏」,作家鄙人陈某。转载本文请关联码猿手艺专栏公众号。
今天这篇著作先容一下如安在修改密码、修改权限、刊出等场景下使JWT失效。
著作的目次如下:

JWT最大的一个上风在于它是无景色的,本身包含了认证鉴权所需要的系数信息,职业器端无需对其存储,从而给职业器减少了存储支出。
但是无景色引出的问题亦然显而易见的,它无法作废未过期的JWT。例如讲解刊出场景下,就传统的cookie/session认证机制,只需要把存在职业器端的session删掉就OK了。
但是JWT呢,它是不存在职业器端的啊,好的那我删存在客户端的JWT行了吧。额,社会本就复杂别再垄断我方了好么,被你在客户端删掉的JWT照旧不错通过职业器端认证的。
使用JWT要十分明确的少许:JWT失效的唯独阶梯便是恭候时辰过期。
但是不错借助外力保存JWT的景色,这时就有东说念主问了:你这不是打脸吗?用JWT就因为它的无景色性,这时候又要保存它的景色?
其实否则,这不被逼不得已了吗?不使用外力保存JWT的景色,你说若何齐全刊出失效?
常用的决策有两种,白名单和黑名单模式。
1、白名单
白名单的逻辑很毛糙:认证通过期,将JWT存入redis中,刊出时,将JWT从redis中移出。这种模式和cookie/session的模式大同小异。
2、黑名单
黑名单的逻辑也十分毛糙:刊出时,将JWT放入redis中,况兼设置过期时辰为JWT的过期时辰;请求资源时判断该JWT是否在redis中,若是存在则拒绝走访。
白名单和黑名单这两种决策齐相比好齐全,但是黑名单带给职业器的压力远远小于白名单,毕竟刊出不是世俗性操作。
黑名单模式齐全底下以黑名单的模式先容一下如安在网关层面齐全JWT的刊出失效。
究竟向Redis中存储什么?
若是径直存储JWT令牌可行吗?诚然可行,不外JWT令牌关联词很长的哦,这么对内存的条目亦然挺高的。
熟谙JWT令牌的齐知说念,JWT令牌中有一个jti字段,这个字段不错说是JWT令牌的唯独ID了,如下:

因此不错将这个jti字段存入redis中,当作唯独令牌象征,这么一来是不是节俭了好多的内存?
若何齐全呢? 分为两步:
网关层的全局过滤器中需要判断黑名单是否存在现时JWT 刊出接口中将JWT的jti字段当作key存放到redis中,且设置了JWT的过期时辰1、网关层解析JWT的jti、过期时辰放入请求头中
在网关的全局过滤器GlobalAuthenticationFilter中径直从令牌中解析出jti和过期时辰。
这里的逻辑分为如下技艺:
解析JWT令牌的jti和过期时辰
阐明jti从redis中查询是否存在黑名单中,若是存在则径直阻碍,否则放行
将解析的jti和过期时辰封装到JSON中,传递给卑鄙微职业
要道代码如下:

2、卑鄙微职业的过滤器修改
还谨记上篇著作:实战干货!Spring Cloud Gateway 整合 OAuth2.0 齐全散布式合资认证授权!中微职业的过滤器AuthenticationFilter吗?
AuthenticationFilter这个过滤器具来解密网关层传递的JSON数据,并将其封装到Request中,这么在业务表率中便不错随时赢得到想要的用户信息。
这里我是把JWT关联的信息同期封装到了Request中,实体类为JwtInformation,如下:

LoginVal给与了JwtInformation,如下:

此时AuthenticationFilter这个过滤器修改起来就很毛糙了,只需要将jti和过期时辰封装到LoginVal中即可,要道代码如下:

逻辑很毛糙,上图齐有标注。
3、刊出接口齐全
之前著作中并莫得提供刊出接口,因为无景色的JWT压根不需要退出登录,傻等着过期呗。
诚然为了齐全刊出登录,借助了Redis,那么刊出接口必不能少了。
逻辑很毛糙,径直将退出登录的JWT令牌的jti设置到Redis中,过期时辰设置为JWT过期时辰即可。代码如下:

OK了,至此照旧齐全了JWT刊出登录的功能.......
波及到的三个模块的改换,区分如下:
称呼 功能 oauth2-cloud-auth-server OAuth2.0认证授权服 oauth2-cloud-gateway 网关职业 oauth2-cloud-auth-common 专家模块
念念想很毛糙,JWT既然是无景色的,只可借助Redis记载它的景色,这么才能达到使其失效的主义。
测试业务基本完成了,底下走一个经由测试一下,如下:
1、登录,央求令牌

2、拿着令牌走访接口
该令牌并莫得刊出,因此不错以前走访,如下:

3、调用接口刊出登录
请求如下:

4、拿着刊出的令牌走访接口
由于令牌照旧刊出了,因此细目走访欠亨接口,复返如下:

- 上一篇:91视频免费观看 锂电隔阂头部企业拟加价30%!多家隔阂企业策画加价
- 下一篇:没有了
-
2025-12-24实战!退出登录时若何借助外力使JWT令牌失效?
-
2025-12-2291视频免费观看 锂电隔阂头部企业拟加价30%!多家隔阂企业
-
2025-12-11141期王钰大乐透瞻望奖号:三区走势分析