JWT整合springboot的使用

JWT是对session的改进

传统的session

  • 用户:向服务器发送用户名和密码
  • 服务器:验证通过,在当前对话(session)会存放一个用户的相关数据,比如用户角色,登录时间等等
  • 服务器:返回一个session_id,写到用户的cookie
  • 用户:之后的每一次请求,都会把cookie里的session_id传给服务器
  • 服务器得到session_id,也就知道了用户的身份

其实,说到底,可以把session_id看成是用户的身份id

JWT的改进

服务器索性不保存session数据,所有数据都保存在客户端
在这里插入图片描述
其实,个人认为最大的区别,是token会加密,而且保存在客户端上,等到需要再次查询的时候,服务器会获取到来自客户端的token,解密之后,查询到用户信息,并发送给用户。

JWT的格式

在这里插入图片描述

搭建SpringBoot + JWT工程

1.首先引入JWT依赖:

        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.0</version>
        </dependency>

2.在工程 application.yml 配置文件中添加JWT的配置信息:

# token配置
token:
    # 令牌自定义标识
    header: Authorization
    # 令牌密钥
    secret: abcdefghijklmnopqrstuvwxyz
    # 令牌有效期(默认30分钟)
    expireTime: 30

3.创建JWT工具类:

	
	 /**
     * 创建令牌
     * 
     * @param loginUser 用户信息
     * @return 令牌
     */
    public String createToken(LoginUser loginUser)
    {
   
        String token = IdUtils.fastUUID(); //获取随机UUID,使用性能更好的ThreadLocalRandom生成UUID
        loginUser.setToken(token);
        setUserAgent(loginUser);
        refreshToken(loginUser);

        Map<String, Object> claims = new HashMap<
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值