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