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没有被篡改

 

posted @ 2023-04-12 14:27  12不懂3  阅读(51)  评论(0编辑  收藏  举报
创作不易,请勿抄袭,欢迎转载!