Cookie
- 优点
使用简单、占用空间小、存储数据量比较大 - 缺点
比较容易被盗用和不安全,不能跨域,没有保护机制。适用于同域下的用户认证和客户端保持有关订单的数据 - 应用场景
用户登录保持会话
Session
- 优点
可以进行多服务器共享,不易被盗用 - 缺点
程序比较复杂,占用资源比较大,可能出现并发问题,有容量限制。适用于多服务器应用中用户认证 - 应用场景
状态管理、例如登录
Token
- 优点
使用安全,有效,可以自定义参数、识别和缓存,无资源耦合 - 缺点
有访问控制以及安全隐患,消耗更多的存储空间和计算能力,Token有可能会因为用户行为不当而失效。适用于保护敏感信息,替代传统认证机制 - 应用场景
API认证访问
JWT
- 优点
JWT是基于Token机制的一种改进实现,适用简单,可以存储用户信息,可以跨域,同时也可以防止被伪造 - 缺点
信息量大,保存的信息少,无法建立客户端本地持久性登录凭证,安全性依赖HS256算法。适用于跨域访问的需求,可以用来匹配分布式系统,用于数据认证和安全传输 - 应用场景
授权和状态保持