当前位置:网站首页 > 更多 > 站长帮 > 正文

[WEB] JsonWebToken jwt实现过程和原理

作者:CC下载站 日期:2022-03-16 00:00:00 浏览:72 分类:站长帮

jwt生成的Token组成

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

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

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

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

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

第二段字符串:PAYLOAD:DATA

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

json转化成字符串,然后做base64url加密

第三端字符串:VERIFY SIGNATURE

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

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

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

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

对Token进行校验

先获取Token

对Token进行切割

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

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

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯