通过jwt组件生成的token分为 header、payload、signature三部分,通过.连接
第一部分 header
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
base64解密后
{"typ":"JWT","alg":"HS256"}
第二部分payload
{"iss":"","iat":1607949872,"exp":1609159472,"nbf":1607949872,"jti":"teQbWN5XTzwP2UeP","sub":100000,"prv":"23bd5c8949f600adb39e701c400872db7a5976f7"}
第三部分
vbfP8JYAgFZslXBfVcPzzbQjSaRSHlWmIkiznmdNZzA
signature,这个是根据 header+payload 的拼接再加上 secret 经过某种方式加密形成的 (核心)。
大概流程是
将一二部分和秘钥通过hash_hmac函数生成的值
再用base64url加密一次