我已经阅读了很多有关此主题的内容,但没有找到我正在寻找的好答案。
因此,我对JWT和Session的优缺点的理解如下:
JWT 优点
- 更可扩展,因为服务器端不需要进行数据库查找(假设是无状态的JWT)。
缺点
- 需要仔细考虑在客户端存储令牌的方式(使用带HttpOnly的cookie优于本地存储,但cookie有4kb大小限制)。
- 不能立即撤销。
- 权限可能会过期,直到下一次刷新。
Session 优点
- 可以说更安全,因为只传递会话ID(模糊引用),比XSS等容易防范CSRF攻击。
- 用户更改会立即反映出来。
缺点
- 比token不太可扩展。
因此,根据我的理解,
支持大量用户的网站(亚马逊、优步)使用哪种方法?使用分布式缓存的会话是否足够好?
在什么实际用例中,使用JWT(基于令牌)比使用基于Session的更有意义?
谢谢!