JWT详解

69 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

👨‍🎓作者:Java学术趴

🏦仓库:GithubGitee

✏️博客:CSDN掘金InfoQ云+社区

💌公众号:Java学术趴

🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。

🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。

☠️每日毒鸡汤:堕落的一天

JWT

1. JWT介绍

JWT简称JSON Web Token,也就是用过JSON形式作为Web应用中的令牌,用于在各方之间(比如前后端之间、A系统与B系统之间)安全地将信息作为JSON对象传输。在数据传输过程中还可以完成数据加密、签名等相关处理。多用于Java Web以及前后端分离的项目

JWT的认证是完全基于令牌的。

2. JWT作用

  • 授权: 这是使用JWT最常见的方案。一旦用户登录,每个后续请求将包括JWT,从而允许用户访问该令牌允许的路由、服务和资源。单点登录是当今广泛使用JWT的一项功能,因为它的开销小并且可以在不同的领域中国轻松使用。
  • 信息交换: JWT是在各方之间安全地传输信息的好方法。因为可以对JWT进行签名(例如:使用公钥/私钥),所以您可以确保发件人是他们所说的人。此外,由于签名是使用标头和有效负载计算的,因此您还可以验证内容是否遭到篡改。

3. 使用JWT的好处

  • JWT是完全基于令牌模式实现的。
  • JWT的会把令牌存储到客户端,而不是服务端,这样就节省了大量的服务端的内存空间。
  • JWT认证是在服务端进行,但是存储的令牌文件在客户端

4. JWT认证流程

5. JWT的结构

  • 没有进行Base64编译之前的JWT结构,其实就是:{}.{}.{} 形式

  • 进行Base64编码之后的JWT结构。xxxx.yyyy.zzzz结构

6. 使用 JWT

7. 验证 JWT