我已经阅读了很多关于这个主题的文章,但找不到我正在寻找的好的答案。
所以我对 JWT 与 Session 优缺点的理解是
智威汤逊专业版
- 更具可扩展性,因为无需在服务器端查找数据库。(假设无状态 JWT)
骗局
- 客户端令牌的存储需要经过深思熟虑。(带有 httpOnly 的 cookie 优于本地存储,但 cookie 有 4kb 大小限制)
- 不能立即撤销
- 权限可能会过时,直到下次刷新
会话专业版
- 可以说更安全,因为您只传递会话 ID(不透明引用),比 XSS 更容易防范 CSRF 等。
- 用户的更改会立即反映出来。
骗局
所以根据我的理解,
支持大量用户的网站(亚马逊、Uber)使用哪种方法?使用带有分布式缓存的会话是否足够好?
现实生活中使用 JWT(基于令牌)比基于会话更有意义的用例是什么?
谢谢你!