【发布时间】:2021-10-30 06:38:13
【问题描述】:
我一直在阅读有关此主题的大量信息,但找不到我正在寻找的好答案。
所以我对JWT vs Session的优缺点的理解是
智威汤逊 亲
- 由于没有在服务器端查找数据库,因此更具可扩展性。 (假设是无状态的 JWT)
骗局
- 客户端的令牌存储需要经过深思熟虑。 (带有 httpOnly 的 cookie 比本地存储更可取,但 cookie 有 4kb 大小限制)
- 不可立即撤销
- 权限在下次刷新之前可能会失效
会话 亲
- 可以说更安全,因为您只传递会话 ID(不透明的引用),比 XSS 更容易防范 CSRF,等等。
- 用户的更改会立即反映出来。
骗局
- 可扩展性不如令牌
所以根据我的理解,
-
支持大量用户(亚马逊、优步)的网站使用哪种方法?使用带分布式缓存的会话是否足够好?
-
在现实生活中使用 JWT(基于令牌)而不是基于会话更有意义的用例是什么?
谢谢!
【问题讨论】:
-
您通常根本不希望您的客户知道会话中存储的内容。这对于 JWT 来说是不可能的。为会话数据和 JWT 签名声明使用会话。
标签: web-services authentication session jwt scalability