JWT(JSON Web Token)

发布于:2025-04-03 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

一 JWT简单介绍

二、JWT 的组成结构

1 Header(头部)

2 Payload(载荷)

三、JWT 工作原理


好文分享

session、cookie、token 详解_token session cookie-CSDN博客

一 JWT简单介绍

概念:是一种开放标准,用于在各方之间安全传输结构化JSON数据。通常用于省份验证和授权,通过数字签名确保数据的完整性和可信性,具有无状态,轻量级,跨域支持等特点。

JWT(JSON Web Token)在当今企业中被广泛采用,尤其是在无状态认证分布式系统场景中。其流行主要得益于其轻量级、跨平台兼容性和自包含特性。

通过数字签名的方式,以 JSON 对象为载体,在不同的服务器终端之间安全传输的信息。

作用:

最常见的场景就是授权认证,一旦用户认证,后续每个请求都将包含JWT,系统在么此处理用户请求之前,都先进行JWT安全校验,通过之后才继续进行处理

JWT就像是一个令牌,当我们去到一个公司,这个公司先会校验你的身份,校验成功就会给你发一个身份卡,以后再见面时,看见你的身份卡就知道你是不是公司的人,就不需要对你的省份继续宁身份认证。你有这个JWT的信息,服务器直接就可以知道你,不用反复查询数据库获取,并且一旦篡改立马就可以发现。

二、JWT 的组成结构

JWT 由三部分组成,格式为 Header.Payload.Signature,各部分通过 . 分隔,均采用 Base64Url 编码。

1 Header(头部)

作用:声明令牌类型(typ)和签名算法(alg)

实例:

{
  "alg": "HS256",  // 签名算法(如HMAC、RSA等)
  "typ": "JWT"      // 固定值
}

2 Payload(载荷)

作用:携带信息

实例:

{
  "sub": "user123",         // 主题(用户ID)
  "name": "Alice",
  "exp": 1717040000         // 过期时间戳
}

3 Signature(签名)

作用:验证令牌是否被篡改,由前两部分编码后的字符串通过指定算法生成。

生成公式:

HMACSHA256(
  base64UrlEncode(header) + "." + base64UrlEncode(payload),
  secret_key
)

三、JWT 工作原理

  1. 生成令牌

    • 用户登录成功后,服务器生成 JWT,包含用户信息和签名,返回给客户端。

  2. 传递令牌

    • 客户端将 JWT 存储在 Cookie 或 Authorization 请求头中,随后续请求发送给服务器。

  3. 验证令牌

    • 服务器收到 JWT 后:

      1. 解码 Header 和 Payload:获取算法和用户数据。

      2. 验证签名:使用相同算法和密钥重新计算签名,比对是否一致。

      3. 检查有效性:如过期时间、签发者等是否符合要求。


网站公告

今日签到

点亮在社区的每一天
去签到