JWT、session
有状态:session
需要在服务器保存 session,客户端也需要将 session 保存在 cookie 中,请求过程中请求头需要将 session 携带在 cookie 中然后在服务器端进行检验。
无状态:JWT
服务器无需保存状态,只需在客户端保存一个经服务器加密的 token,请求过程中携带 token,然后在服务器端进行解密校验。
优势
- 相对安全,因为加密是非对称的(请妥善保管私钥);
- 便于分布式部署服务;
缺陷
- 由于服务器未保存状态,因此无法主动释放过期状态;
- 虽然验证部分是非对称加密,但是保存内容只是简单的 base64 转换,相当于明文保存。
- 一旦客户端 token 遭到窃取,那窃取者在 token 未过期的情况下,就获取了全部的使用权限。
网友评论