net core jwt token登出思路


    眾所周知,jwt token一旦頒發出去后,是沒法強制設置過期的。有沒有什么方式能強制token過期,實現登出效果嗎?我說下我的思路,我用redis存儲所有強制登出的token,不一定是最好的解決方案。

頒發token

    這個沒什么好說的,用戶登錄后,通過Identityserver4生成token及refreshToken。


強制token和refreshToken過期

    客戶端調用登出接口,傳入token和refreshToken作為參數。在登出接口中將token和refreshToken分別存放到redis中,並使用其哈希值作為key,設置key的過期時間分別為token和refreshToken的有效時間長度。


客戶端請求接口時驗證token

    如果被訪問的接口需要認證,這里分兩步。首先,Identityserver4自動驗證token是否有效。如果此步驟驗證通過(以往這樣的token合法了)。接着接着到redis黑名單庫去查找強制登出的token,如果找到數據,判斷該token為無效,也返回401。


刷新token時驗證refreshToken

    強制登出的token對應的refreshToken也被視為登出。所以調用刷新token接口時候也需要驗證refreshToken是否登出。
具體過程如下:客戶端在請求刷新token接口時傳入refreshToken作為參數,然后到redis黑名單庫中去查找強制登出的refreshToken,如果找到數據,判斷該refreshToken為無效,返回401,不去刷新token。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM