JWT(基于令牌的身份验证)与会话/Cookies - 最佳使用

JWT (Token based authentication) vs Session / Cookies - Best Usage

我已经阅读了很多关于这个主题的文章,但找不到我一直在寻找的好的答案。

所以我对JWT vs Session优缺点的理解是

智威汤逊 临

控制

会话 临

控制

所以根据我的理解,

  1. 支持海量用户(amazon, uber)的网站用什么方法?使用带有分布式缓存的会话是否足够好?

  2. 在现实生活中,使用 JWT(基于令牌)比基于会话更有意义的用例是什么?

谢谢!

JWT 从未设计用于处理会话。它们是一种在服务之间交换受完整性保护的消息的方式。看看这篇文章:http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/ 它解释了为什么使用 JWT 处理会话不是一个好主意。

您还可以阅读 BFF 模式:https://curity.io/resources/learn/the-bff-pattern/ 您使用轻量级后端组件来处理令牌,并且仍然只处理前端的会话。因为它是一个轻量级组件,所以很容易扩展它——例如它可以是一个 lambda 函数。

所以在我看来,没有真正好的用例可以让您真正更喜欢基于 JWT 的会话而不是基于 cookie 的会话,但是(如任何强烈的意见),这可能会引发讨论 ;)

JWT 的诞生是为了提供从移动应用程序对 API 的安全访问。软件开发人员也开始将它们用于基于 Web 浏览器的客户端,但由于安全问题,它们并不适用。您会发现很多关于该主题的文章。对于web应用来说,token最好保存在服务器端,link与新session一起使用,return登录浏览器后的session保存在session cookie中。