HuTool工具箱验证JWT生成Token失败

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。
摘要由CSDN通过智能技术生成

系列文章目录


文章目录


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
在这里插入图片描述
JWT官网: https://jwt.io/
JWT(Java版)的github地址:https://github.com/jwtk/jjwt

之前写过两篇关于JWT的文章,如下链接

JSON Web Token JWT介绍

JSON Web Token JWT 示例

其中重点要提出的是,JWT存储的是明文,因此不能存储重要信息,或者可以进行加密。

在解决一个问题时,在工程A中生成了JWT的Token,由于JWT存储的是明文,解析是没有问题的,但是重点是效验,在工程B中,因为引入了HuTool工具箱(Hutool参考文档),当我使用其方法进行Token验证时,发现验证是失败的。

例如,在工程A中生成了一个Token为:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqYXZh5bCP5by6IiwiZXhwIjoxNjgxMDI0NjM5LCJpYXQiOjE2Nzg0MzI2Mzl9.wDGa4FWi9Ok5WlWvhvhrorvjgdd9R1rYWu8nZLWANWY

如果解析,可以正常解析到内容,在A中也是验证正常的。

但是在工程B中,使用HuTool来验证一下这个Token,发现验证失败。

package com.example.springboot;
import cn.hutool.jwt.JWTUtil;
public class JwtTest {
   
    public static void main(String[] args) {
   
        String token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJqYXZh5bCP5by6IiwiZXhwIjoxNjgxMDI0NjM5LCJpYXQiOjE2Nzg0MzI2Mzl9.wDGa4FWi9Ok5WlWvhvhrorvjgdd9R1rYWu8nZLWANWY";
        String key = "Bbek6Qo2M!cpclGH";
        
  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要使用hutool生成jwt token,你需要在项目中引入hutool-all的依赖。具体的依赖配置如下所示: ```xml <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.13</version> </dependency> ``` 在登录接口中,如果账号密码校验成功,你可以使用用户id和用户类型创建jwt token,并将其设置为永不过期。然后,你可以更新登录日期,并将其作为一个值(B)存储在redis中,以便后续验证。在登录结果中,你可以返回一个json格式的响应,其中包含"result"为"success","token"为A的键值对。用户在接口请求header中携带token进行登录,后端可以通过拦截器解析token,获取userId和用户类型。如果解析失败,则返回一个json响应,表示Token验证不通过。如果解析成功,后端可以验证redis中的缓存key是否存在。如果不存在,则返回一个json响应,表示会话过期请重新登录。如果缓存key存在,则可以自动续7天的超时时间,以实现频繁登录用户的免登陆功能。在接口方法中,你可以直接获取登录用户的信息,将userId和用户类型放入request参数中。如果用户修改密码或退出登录,你可以废除access_tokens,即删除对应的缓存key。\[2\] 请注意,以上是一个大致的流程,具体实现可能会根据你的项目需求有所不同。 #### 引用[.reference_title] - *1* [利用hutool生成验证JWT的示例](https://blog.csdn.net/qq125281823/article/details/120960181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [JWT生成token及过期和自动续期](https://blog.csdn.net/jq1223/article/details/114580020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java毕设王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值