前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JsonWebToken jwt实现过程和原理

JsonWebToken jwt实现过程和原理

作者头像
SingYi
发布2022-07-13 20:07:51
3620
发布2022-07-13 20:07:51
举报
文章被收录于专栏:Lan小站Lan小站

jwt生成的Token组成

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

www.lanol.cn
www.lanol.cn

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

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

代码语言:javascript
复制
{
  "alg": "HS256",
  "typ": "JWT"
}

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

www.lanol.cn
www.lanol.cn

第二段字符串:PAYLOAD:DATA

代码语言:javascript
复制
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

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

www.lanol.cn
www.lanol.cn

第三端字符串:VERIFY SIGNATURE

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

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

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

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

www.lanol.cn
www.lanol.cn

对Token进行校验

先获取Token

对Token进行切割

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • jwt生成的Token组成
    • 第一段字符串:HEADER:ALGORITHM & TOKEN TYPE
      • 第二段字符串:PAYLOAD:DATA
        • 第三端字符串:VERIFY SIGNATURE
          • 第一步 将第1,2部分密文拼接起来
          • 第二步 对前两部分密文进行SHA256加密加盐
          • 第三步 对HS256加密后的密文再做base64url加密
      • 对Token进行校验
        • 先获取Token
          • 对Token进行切割
            • 对第二部分进行base64url解密,并获取payload信息,检测exp字段是否超时
              • 把第1,2端密文拼接,再次执行sha256加密,判断是否相等,如果相等则认证通过
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档