微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JWT认证

JWT认证

Json Web Tokwn,一种认证机制。

JWT分为三个部分,JWT头 | 有效载荷 | 签名

1.JWT头——Header

{
    "alg": "HS256", //签名使用的算法
    "typ": "JWT"    //令牌类型
}

最后,使用Base64 算法将上述JSON对象转换为字符串保存。

2.有效载荷——Payload

{ "iss":"发行人", "exp":"过期时间", "sub":"主题", //自定义字段 "name":"java技术爱好者", "isAdmin":"true", "loginTime":"2021-12-05 12:00:03" }

最后,使用Base64 算法将上述JSON对象转换为字符串保存。

3.签名——singnature

需要指定一个secretKey,该secretKey保存在服务器,使用Header指定的算法对Header和Payload进行计算,然后得出一个Signature。

JWT的优点

  • json格式的通用性,所以JWT可以跨语言支持,比如Java、JavaScript、PHP、Node等等。
  • 可以利用Payload存储一些非敏感的信息。
  • 便于传输,JWT结构简单,字节占用小。
  • 不需要在服务端保存会话信息,易于应用的扩展。

以前的认证方式session认证和token认证

  • session认证,服务器保存用户信息,认证成功返回cookie给浏览器。缺点:信息保存在服务器占用空间;分布式部署应用会出现session不能共享、难扩展。

  • token认证,redis保存token实现共享、易扩展。缺点:每次请求都需要查询redis,造成redis的压力,增加请求的耗时,每个已登录用户都要保存一个token在redis,也会消耗redis的存储空间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐