簡體   English   中英

JWT認證策略

[英]JWT Authentication strategy

現在,我是否應該在會話中存儲JWT令牌感到困惑

我是不是該

  1. 創建令牌后將其存儲在Redis中

     // JWT TOKEN token := CreateToken(user) // Storing it in Gorilla Session + Redis s := sessions.Default(c) s.Set("token", token) s.Save() 

因此,然后從服務器獲取令牌,而不是從請求標頭的后續請求中獲取令牌

    s.Get("token")
    // and to something with it
  1. 在后續請求中傳遞令牌,以便在所需的每個路由中傳遞令牌

     func login(c *gin.Context) { c.Getheader("Authorization") } 

我正在使用gin框架

哪種方法是更好的會話或用戶的后續請求

問候,諾法

如果您是一個客戶 -是的,則在獲得令牌后,您應該將其存儲並傳遞后續請求。

如果您創建服務器 -則否。 您無需存儲已發行的令牌,但應在收到客戶請求時隨時對其進行驗證。 這樣,您可以使服務成為無狀態且更具可擴展性。

不要在會話中存儲JWT。

使用JWT的一個重要好處是使服務器保持無狀態。 現在,如果將JWT放在會話中,您將失去JWT的優勢。

例:

假設您有兩個服務器負載均衡的實例。 除非您創建某種類型的共享會話存儲,否則訪問者每次都必須被迫訪問同一台服務器(這並不容易)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM