簡體   English   中英

如何使用 go-guardian JWT 策略主動注銷用戶?

[英]How to actively logoff a user with go-guardian JWT strategy?

我在我的項目中使用帶有 JWT“基本承載”策略的 go-guardian 進行身份驗證,效果非常好。 當客戶端沒有令牌時,他使用他的憑據登錄並收到 JWT,然后他可以將其用於像這樣的進一步請求:

                $.ajax({
                    headers: {
                        'Authorization': 'Bearer ' + token
                    },
                    url: '/api/archive',
                    type: "post",
                    contentType: 'application/json; charset=utf-8',
                    data: JSON.stringify(searchData),
                    dataType: 'json',
                    success: onDataReceived,
                    error: onError
                });

但是,我想知道當客戶端點擊/auth/logoff路由時如何在服務器端進行主動注銷? 當然,客戶端可以簡單地刪除令牌,但服務器仍然會接受它。 如何在服務器端主動使令牌無效或刪除,以便我可以安全地說客戶端必須重新驗證?

您可以保留一個單獨的表user_session ,其中 session 還包括用戶的令牌。 當端點被命中時,您檢查令牌的簽名以及該令牌是否在數據庫中。

您還需要在用戶登錄時存儲令牌,並在用戶注銷時刪除此令牌。

每個用戶需要多個會話的原因是因為用戶可能使用多個令牌從不同的設備登錄。 要注銷用戶,您可以從 user_session 中刪除該特定user_session或從所有設備注銷,您可以刪除該用戶的所有會話。

暫無
暫無

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

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