JWT


JWT

JSON WEB TOKEN

JWT由三部分构成

header:

头部是固定内容,标识了使用的签名算法和令牌的类型

{

"alg":"HS256",

"typ":"JWT"

}

payload

载荷是包含的用户信息和令牌信息,有官方推荐的字段,比如:

iss: 令牌发行方

iat: 令牌发出时间

exp:令牌过期时间

nbf: 令牌开始使用时间等

完整列表:https://www.iana.org/assignments/jwt/jwt.xhtml

可用于存储uid等用户非隐私信息

{

"iss":"companyname",

"exp":1644991423,

"iat":1644991453,

"nbf":1644991453,

"uid":123,

"name":"huangdeyin"

}

signature

签名:将头部和载荷使用base64编码后通过.号链接,加上服务端秘钥使用头部的签名算法进行签名后获取该值

伪代码:

String secret = "your secret"

String signature = HS256(base64(header)+"."+base64(payload)+secret)

最后将

JWToken = header+payload+signature

生成了一个完整的JWTtoken