Java的新项目学成在线笔记-day16(十)

这篇博客讲述了Java项目中使用JWT进行用户认证的流程,包括用户登录、JWT令牌生成、存储到Redis以及退出时的令牌清理。还介绍了Redis的安装及作为服务管理的方法,强调了Redis在存储JWT令牌和实现用户注销功能中的作用。
摘要由CSDN通过智能技术生成

3.6.3.3 验证jwt令牌 

[AppleScript] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

//资源服务使用公钥验证jwt的合法性,并对jwt解码  

  @Test 

   public void testVerify(){   

     //jwt令牌  

      String token  ="eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHQiOiIxIiwicm9sZXMiOiJyMDEscjAyIiwibmFtZSI6Im1ydCIsI mlkIjoiMTIzIn0.KK7_67N5d1Dthd1PgDHMsbi0UlmjGRcm_XJUUwseJ2eZyJJWoPP2IcEZgAU3tUaaKEHUf9wSRwaDgwhrw fyIcSHbs8oy3zOQEL8j5AOjzBBs7vnRmB7DbSaQD7eJiQVJOXO1QpdmEFgjhc_IBCVTJCVWgZw60IEW1_Lg5tqaLvCiIl26K 48pJB5f‐le2zgYMzqR1L2LyTFkq39rG57VOqqSCi3dapsZQd4ctq95SJCXgGdrUDWtD52rp5o6_0uqmrbRdRxkrQfsa1j8C5IW2‐T4eUmiN3f9wF9JxUK1__XC1OQkOn‐ZTBCdqwWIygDFbU7sf6KzfHJTm5vfjp6NIA";     

   //公钥    

    String publickey = "‐‐‐‐‐BEGIN PUBLIC KEY‐‐‐‐MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAijyxMdq4S6L1Af1rtB8SjCZHNgsQG8JTfGy55eYvzG0B/E4AudR2 prSRBvF7NYPL47scRCNPgLnvbQczBHbBug6uOr78qnWsYxHlW6Aa5dI5NsmOD4DLtSw8eX0hFyK5Fj6ScYOSFBz9cd1nNTvx 2+oIv0lJDcpQdQhsfgsEr1ntvWterZt/8r7xNN83gHYuZ6TM5MYvjQNBc5qC7Krs9wM7UoQuL+s0X6RlOib7/mcLn/lFLsLD dYQAZkSDx/6+t+1oHdMarChIPYT1sx9Dwj2j2mvFNDTKKKKAq0cv14Vrhz67Vjmz2yMJePDqUi0JYS2r0iIo7n8vN7s83v5u OQIDAQAB‐‐‐‐‐END PUBLIC KEY‐‐‐‐‐";         //校验jwt  

      Jwt jwt = JwtHelper.decodeAndVerify(token, new RsaVerifier(publickey));    

    //获取jwt原始内容    

    String claims = jwt.getClaims();  

      //jwt令牌    

    String encoded = jwt.getEncoded();  

      System.out.println(encoded)

   }


4 认证接口开发 
4.1 需求分析 
用户登录的流程图如下:

 
执行流程:
1、用户登录,请求认证服务
2、认证服务认证通过,生成jwt令牌,将jwt令牌及相关信息写入Redis,并且将身份令牌写入cookie
3、用户访问资源页面,带着cookie到网关 
4、网关从cookie获取token,并查询Redis校验token,如果token不存在则拒绝访问,否则放行
5、用户退出,请求认证服务,清除redis中的token,并且删除cookie中的token
使用redis存储用户的身份令牌有以下作用:
1、实现用户退出注销功能,服务端清除令牌后,即使客户端请求携带token也是无效的。
2、由于jwt令牌过长,不宜存储在cookie中,所以将jwt令牌存储在redis,由客户端请求服务端获取并在客户端存 储。

4.2 Redis配置 
4.2.1 安装Redis 
1、安装Redis服务 下载Windows版本的redis:https://github.com/MicrosoftArchive/redis/tags
下载Redis-x64-3.2.100版本,解压Redis-x64-3.2.100.zip 进入cmd命令行,进入Redis-x64-3.2.100目录。
运行:
 

[AppleScript] 纯文本查看 复制代码

?

1

redis‐server redis.windows.conf


出现 下图说明 redis启动成功:

 
注册为服务:
 

[AppleScript] 纯文本查看 复制代码

?

1

redis‐server ‐‐service‐install redis.windows‐service.conf ‐‐loglevel verbose


刷新服务,会看到多了一个redis服务。

 
常用的redis服务命令如下:
进入redis安装目录: 卸载服务:redis-server.exe --service-uninstall
开启服务:redis-server.exe --service-start 停止服务:redis-server.exe --service-stop  
2、redis-desktop-manager 下载windows版本的redis客户端:https://redisdesktop.com/download 下载redis-desktop-manager-0.9.2.806.exe
安装后启动redis客户端: 配置redis链接:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值