我刚看了基于令牌的身份认证的国内外研究。它声称可伸缩性是server based Authentication
的主要问题,因为服务器必须在本地存储会话。提示token based authentication
是一种治疗方法。
但真的吗?
身份验证只是可能导致可伸缩性问题的地方之一。只要在服务器端存储任何特定于用户的状态信息,无论它存储在会话作用域还是web应用程序范围,都会导致可伸缩性问题。说单靠token based authentication
可以解决可伸缩性问题是过分夸张的。有太多的其他因素是更强大的因素。仅仅因为基于令牌的身份验证是无状态的,并不意味着整个服务器可以是无状态的。
让我们以JWT为例,以JWT的定义为例
JSON Web令牌(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑和独立的方式,用于在各方之间以JSON对象的形式安全地传输信息。可以验证和信任此信息,因为它是数字签名的。
我认为JWT不适合在身份验证数据之外存储状态信息。因为JWT存储的一般合理位置都有较小的大小限制,例如HTTP头、Cookie。
你同意吗?有人能弄清楚这件事吗?
发布于 2016-01-07 08:26:18
对于其他事情,应用程序是否需要会话状态并不会影响使用JWT令牌的可伸缩性特性。
完全有可能设计一个真正的无状态应用程序,在这种情况下,使用基于令牌的身份验证可以使您保持无状态状态。
您不应该使用安全令牌来存储会话信息,因为令牌是签名的,会话信息通常是不稳定的。每次发生索赔变更时,发行人都需要辞职。
https://stackoverflow.com/questions/34646565
复制相似问题