2016-12-31 96 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