[JWT] JSON Web Token 简介

#coding
目录

1. 什么是 JWT

JSON Web Token,简称JWT,读作/dʒɒt/, 是一种开放标准(RFC 7519),用于以JSON对象的方式安全地传输信息,由于传输的信息是经过数字签名的,所以信息可被验证和信任。

2. JWT 的使用场景

3. JWT 的结构

一个JWT是由HeaderPayloadSignature三个元素构成的字符串,使用.分隔(Header.Payload.Signature)。前两个元素是特定结构的JSON对象,通常经过base64url编码。第三个是将Header和Payload的内容组合并加密。下面是一个JWT示例(为了方便阅读,加了换行符):

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.
TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

https://jwt.io/#debugger-io 进行解码后如下图所示,Header 中指定了使用HS256算法进行签名,令牌类型为JWT;Payload中包含了sub、name、admin信息;Signature中, 使用header和payload以及特定的secret来生成签名。

image-20231114171718443.png

4. JWT 工作流程

1269fc4dd4a144b5a001f35b4a7804d9.png

首先客户端发送带有用户名和密码的Post请求。服务端验证身份成功后,生成JWT返回给客户端。后续所有的请求中,客户端都会在Header中带上这个toekn(JWT),服务端通过token验证用户身份,返回对应的响应数据。

参考文献


评论区