SpringBoot之JWT令牌校验

SpringBoot之JWT令牌校验

本文根据黑马b站springboot3+vue3课程

封面

JWT

(JSON Web Token)是一种开放标准(RFC 7519),用于在不同实体之间安全地传输信息。它由三个部分组成:头部(Header)、载荷(Payload)和签名(Signature)。

  1. 头部(Header):头部通常由两部分组成,标识token的类型和所使用的签名算法,例如:
{
   
   
  "alg": "HS256",
  "typ": "JWT"
}

这表示该JWT使用HS256算法进行签名,并且是一个JWT类型的token。

  1. 载荷(Payload):载荷是JWT的第二部分,也称为Claim。它包含了要传输的数据,可以是用户的身份信息、权限信息等。载荷分为三个部分:

    • 注册声明(Registered Claims):这些是预定义的声明,包含了一些标准的信息,如iss(签发者)、sub(主题)、aud(接收者)、exp(过期时间)、nbf(生效时间)、iat(签发时间)等。
    • 公共声明(Public Claims):这些是自定义的声明,用于传递一些非强制性的信息,例如用户的角色、权限等。
    • 私有声明(Private Claims):这些也是自定义的声明,用于在JWT的发送和接收方之间共享信息,但它们不是JWT规范的一部分,只是双方之间协商的私有信息。
  2. 签名(Signature):签名是JWT的第三部分,用于验证消息的完整性和来源。它由使用私钥对头部和载荷进行签名的结果组成,以确保数据在传输过程中没有被篡改。

JWT通常用于身份验证和信息交换。例如,在 Web 应用程序中,当用户成功登录后,服务器会生成一个JWT并将其发送回客户端,客户端将JWT存储起来,并在后续的请求中将其发送给服务器进行身份验证。服务器收到JWT后,会验证其签名和有效期,并根据载荷中的信息来决定是否授权用户访问特定的资源。
在这里插入图片描述
在这里插入图片描述
依赖

在这里插入图片描述
如果输入正确的账号密码在本机访问如下
在这里插入图片描述

public class JwtTest {
   
   
    @Test

    public void testGen() {
   
   
        Map<String, Object> claims = new HashMap<>();
        claims.put("id", 1
评论 60
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

聪-coding

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

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

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

打赏作者

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

抵扣说明:

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

余额充值