2016-12-31 152 views
0

我有一个认证用户的Web服务,如果成功,他们就可以使用JSON Web Token来保存他们的会话。
目前我只有一台服务器,但为了性能的原因,理想情况下希望将其增加到两个或更多,但我不确定这将如何与不同的服务器一起工作,因为它们将具有不同的维护实例当前登录的人如何管理多个服务器上的用户会话?

例如,我的服务将检查客户端返回的JWT,并且(假设它是一个很好的令牌)将接收用户标识和会话并检查是否有用户使用该标识登录会话ID。但是,例如,如果Web服务层之前的中间件确定用户最初登录的服务器当前不可用并将请求路由到Web服务的不同服务器实例,那么身份验证控制器如何实现评估请求是否有效?

我的服务的一个非常基本的版本可以在下面找到,黑色箭头代表普通通信,红色箭头代表第一层决定将请求路由到实例二的通信。第一层实质上是非常基本的,除了根据第二层实例的可用性将路由流量传送到下一层以外,并没有真正做任何其他事情。

enter image description here

回答

0

一个智威汤逊的主要优点是,它不需要服务器存储,因为它是自包含的,无状态的。如果您需要服务器会话,则可能是JWT,但这不是管理身份验证的最佳选择。请参阅Stop using JWT for sessions

当前应用程序服务器使用SESSION ID来管理对存储用户会话的服务器的负载平衡和重定向,包括持久存储和会话迁移。使用智威汤逊,您将不会从这些特点中获益。

如果您需要使用身份验证的REST无状态端点或您需要在各方之间安全地交换数据,请使用JWT