持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情
👨🎓作者:Java学术趴
💌公众号: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结构