[英]JWT Authentication strategy
現在,我是否應該在會話中存儲JWT令牌感到困惑
我是不是該
創建令牌后將其存儲在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
在后續請求中傳遞令牌,以便在所需的每個路由中傳遞令牌
func login(c *gin.Context) { c.Getheader("Authorization") }
我正在使用gin框架
哪種方法是更好的會話或用戶的后續請求
問候,諾法
如果您是一個客戶 -是的,則在獲得令牌后,您應該將其存儲並傳遞后續請求。
如果您創建服務器 -則否。 您無需存儲已發行的令牌,但應在收到客戶請求時隨時對其進行驗證。 這樣,您可以使服務成為無狀態且更具可擴展性。
不要在會話中存儲JWT。
使用JWT的一個重要好處是使服務器保持無狀態。 現在,如果將JWT放在會話中,您將失去JWT的優勢。
例:
假設您有兩個服務器負載均衡的實例。 除非您創建某種類型的共享會話存儲,否則訪問者每次都必須被迫訪問同一台服務器(這並不容易)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.