SpringBoot整合Json Web Token(JWT)

一、JWT简介

1.1 概述

        JWT,又称为JSON Web Token,是通过JSON形式作为Web应用的令牌,用于各方之间安全地将信息作为JSON对象传输,在数据传输时能够完成数据加密、签名等相关处理。

1.2 好处

        在JavaWeb阶段,经常使用session来存储,以方便用来判断用户是否操作等。但这又恰巧暴露了一个问题,用session存储是需占用服务器内存的。当用户只有一两个的时候没什么问题,但是当用户成千上万时,服务器就很难招架得住了。并且session是基于cookie来实现的,因此数据很容易被截获,遭遇CSRF跨域伪造攻击,因此不太安全。这时JWT的优势就突出显示出来的。

  • 简洁(compact):可以通过URL,POST参数或者HTTP header发送,因为数据量小,传输数据也很快;
  • 自包含(self-contained):负载中包含了所有用户所需要的信息,避免了多次查询数据库;
  • 因为Token是以JSON加密的形式保存在客户端的,所以JWT是跨语言的,原则上任意web形式都支持;
  • 不需要在服务端保存会话信息,特别适用于分布式微服务;

二、结构组成

JWT中的token组成主要分成三部分:

  • 标头(Header)
  • 有效载荷(Payload)
  • 签名(Signature)

2.1 标头(Header)

        标头通常由两部分组成:令牌的类型(即JWT)和所使用的签名算法,例如:HMAC、SHA256、RSA。它会使用Base64编码组成JWT结构的第一部分。值得一提的是,Base64是一种编码方式,并不是一种加密算法。换言之,它可以被翻译回原来的样子。

{
    "alg":"HS256",
    "typ":"JWT"
}

2.2 有效载荷(Payload)

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

路上的追梦人

您的鼓励就是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值