無狀態登入Token過期時間問題

2021-10-23 09:35:01 字數 547 閱讀 4915

如果設定了過期時間,使用者持續訪問,那麼這個時間應該做處理

乙個好的模式是在它過期之前重新整理令牌。

將令牌過期時間設定為一周,並在每次使用者開啟web應用程式並每隔一小時重新整理令牌。如果使用者超過一周沒有開啟過應用程式,那他們就需要再次登入,這是可接受的web應用程式ux(使用者體驗)。

要重新整理令牌,api需要乙個新的端點,它接收乙個有效的、沒有過期的jwt、並返回與新的到期字段相同的簽名的jwt。然後web應用程式會將令牌儲存在某處。

大多數本地應用程式的登入有且僅有一次。

這裡面的出發點是,重新整理令牌永遠不會過期,並且可以始終為有效的jwt進行更換。

永遠不會過期的令牌的問題是它失去了令牌的意義。譬如,如果你**丟了,你該怎麼辦?因此,它需要由使用者以某種方式進行識別,應用程式需要提供撤銷訪問的方法。我們決定使用裝置的名稱,例如「maryo的ipad」。然後使用者可以去應用程式,並撤銷訪問「maryo的ipad」。

另一種方法是撤銷特定事件的重新整理令牌,其中乙個有趣的事件是更改密碼。

我們認為jwt對於這些用例無效,因此我們使用隨機生成的字串,並將它們儲存在我們這邊。

無狀態登入

有狀態服務,即服務端需要記錄每次會話的客戶端資訊,從而識別客戶端身份,根據使用者身份進行請求的處理,典型的設計如tomcat中的session。例如登入 使用者登入後,我們把登入者的資訊儲存在服務端session中,並且給使用者乙個cookie值,記錄對應的session。然後下次請求,使用者攜帶c...

使用者的無狀態登入原理 token認證機制

有狀態服務,即服務端需要記錄每次會話的客戶端資訊,從而識別客戶端身份,根據使用者身份進行請求的處理,典型的設計如tomcat中的session。傳統專案中,在使用者登入後,我們把登入者的資訊儲存在服務端session中,並且給使用者乙個cookie值,記錄對應的session。然後下次請求,使用者攜...

無狀態登入原理

1.1.什麼是有狀態?有狀態服務,即服務端需要記錄每次會話的客戶端資訊,從而識別客戶端身份,根據使用者身份進行請求的處理,典型的設計如tomcat中的session。例如登入 使用者登入後,我們把登入者的資訊儲存在服務端session中,並且給使用者乙個cookie值,記錄對應的session。然後...