写在前面
相信大家对于jwt应该不陌生了,做过前后端分离的童鞋应该对jwt不陌生,但是jwt是用来干什么的呢?jwt是json web token的缩写,它是一个开放标准(RFC 7519),定义了一种紧凑且独立的方式,可以在各方通过JSON 对象安全地传输信息。此信息可以通过数字签名进行验证和信任。可以使用秘密(使用HMAC算法)或使用公钥/私钥对(例如,使用RSA)对 JWT 进行签名。
jwt的优点:
- 简洁:通过计算签名,可以保证信息不会被篡改
- 验证:通过签名,可以验证信息是否被篡改
- 不可抵赖:通过签名,可以验证信息是否被篡改
jwt的缺点:
- 安全性:jwt的缺点是,由于服务器不保存 session 状态(即用户身份验证状态),因此不能防止重放
- 性能:由于验证需要服务器进行计算,因此增加服务器的负担
- 跨域:由于服务器不保存 session 状态,因此不能将 jwt 用于跨域请求
- 不可扩展:由于服务器不保存 session 状态,因此不能在 jwt 中添加自定义字段
- 不可撤销:由于服务器不保存 session 状态,因此不能在 jwt 中添加自定义字段
项目需求
身份验证是大多数应用的重要组成部分。有许多不同的方法