jwt验证机制
jwt数据结构为
1.header头:{"type":"JWT"}
2.payload:有效载荷
3.signature签名 防止篡改
服务器和客户端jwt交互过程
服务器给出token的时候:
1.前提:账号密码验证通过 得到用户信息或者其他信息(过期时间等) 往header或者payload里面塞
2. base64urlEncode(header)+"."+base64urlEncode(payload) 加密后得到字符串 header.payload
3.用HMACSHA256不可逆加密算法+公钥(公开的解密钥匙) 对xxx.yyy 加密 得到固定长度b -目的是把内容变短
4.然后用加密钥把b 加密 得到字符串signature 所以最终生成的jwt token=header.payload.signature
客户端拿到token:header.payload.signature
1.先拿到公钥 对signature解密得到字符串c(能加开证明秘钥是对的 说明zzz来自服务器)
2.然后对header.payload进行HMACSHA256加密 得到字符串D 比对d和字符串C 相同则证明token没有被篡改
本文来自博客园,作者:12不懂3,转载请注明原文链接:https://www.cnblogs.com/LZXX/p/17309696.html