目录
JWT的数据结构
- HEADER(json请求头)
{
“alg”: “HS256”
,”typ”: “JWT”
} - PAYLOAD(用户信息等)
{
“sub”: “1234567890”,
“name”: “John Doe”,
“iat”: 1516239022
} - VERIFY SIGNATURE(用sha256算法所加密的密文)
HMACSHA256
(
base64UrlEncode(header) + “.” +
base64UrlEncode(payload),
your-256-bit-secret
) secret base64 encoded
原理
- 在授权服务器和鉴权服务器都有有密匙
->此密匙可以通过sha256算法加密和解密密文 - 在授权服务器,验证密码通过以后,将上面的
HEADER的开头一部分(base64UrlEncode(header))
PAYLOAD的开头一部分(base64UrlEncode(payload))
通过密匙(your-256-bit-secret)加密
->生成VERIFY SIGNATURE - 将HEADER,PAYLOAD,VERIFY SIGNATURE返回客户端
- 客户端向鉴权服务器请求时,将HEADER,PAYLOAD,VERIFY SIGNATURE发送到鉴权服务器
会进行鉴权动作:
用本地的 密匙通过sha256解密VERIFY SIGNATURE的内容
然后将其与接收到的HEADER,PAYLOAD进行比对,无误则鉴权通过