Session、Token和JWT
Session
- 保持在服务器,增加服务器的开销
- 分布式架构中,难以维持session回话同步
- CSRF攻击风险
Token
- 保存在客户端
- 跨语言、跨平台
- 拓展性强
- 鉴权性能高
JWT
JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。
jwt由三个部分组成,分别是header、playload、signature
header头部
- 声明类型
- 声明加密算法,默认为HS256
- base64加密,可以解密
playload负载
- 存放过期时间、签发用户等
- 可以添加用户的非敏感信息
- base64加密,可以解密
signature签名
- 由三部分组成
- 使用base64加密之后的header+.+使用base64加密之后的playload+使用HS256算法加密,同时secret加盐处理