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的存储空间。

posted @   little_lunatic  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示