Web

JsonWebToken jwt实现过程和原理

Lan
Lan
2022-03-16 / 0 评论 / 227 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年03月16日,已超过766天没有更新,若内容或图片失效,请留言反馈。

jwt生成的Token组成

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

www.lanol.cn

这是一串由jwt生成的token,它分为三部分字符串,由 . 隔开

第一段字符串:HEADER:ALGORITHM & TOKEN TYPE

{
  "alg": "HS256",
  "typ": "JWT"
}

HEADER内包含算法和Token类型
通过base64url加密而来
www.lanol.cn

第二段字符串:PAYLOAD:DATA

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

json转化成字符串,然后做base64url加密
www.lanol.cn

第三端字符串:VERIFY SIGNATURE

第一步 将第1,2部分密文拼接起来

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

第二步 对前两部分密文进行SHA256加密加盐

第三步 对HS256加密后的密文再做base64url加密

www.lanol.cn

对Token进行校验

先获取Token

对Token进行切割

对第二部分进行base64url解密,并获取payload信息,检测exp字段是否超时

把第1,2端密文拼接,再次执行sha256加密,判断是否相等,如果相等则认证通过

3

评论 (0)

取消