JWT 基础介绍

33 阅读1分钟

什么是 JWT?

JWT (JSON Web Token) 是目前最流行的跨域认证解决方案,是一种基于 Token 的 JSON 格式传递数据的网络令牌技术。

JWT 令牌组成部分?

JWT 由三部分组成,每部分中间使用点(.)分隔,比如:xxx.yyy.zzz

  • Header: 描述 JWT 的元数据,定义了生成签名的算法以及 Token 的类型;
{
    'alg': 'HS256',
    'typ': 'JWT'
}
  • Payload : 用来存放实际需要传递的数据;
{    
    'iss': '签发方',
    'iat': '签发时间',
    'exp': '过期时间',
    'jti': '唯一标识',
    'name': '用户信息',
    'sub': '主题',
}

除了以上信息外,开发者还可以自定义属性。

  • Signature:通过 Payload、Header、Secret 使用 Header 里面指定的签名算法(默认是 HMAC SHA256)生成;

如下图所示:

截屏2023-09-08 09.57.53.png

JWT 如何使用?

客户端收到服务器返回的 JWT,可以储存在 localStorage,在之后客户端每次与服务器通信,都要把这个 JWT 放在 HTTP 请求的头信息 Authorization 字段里面,应当写成这样的形式Authorization: <type> <credentials>,type 是指认证的方式规范为 Bearer,credentials 则是认证需要的信息。

如下图所示:

截屏2023-09-08 10.15.20.png