2017-04-26 64 views
1

JWT是一種無狀態身份驗證機制,因爲用戶狀態永遠不會保存在服務器內存中。JWT和阻止用戶

如何管理員阻止用戶的某些resons令牌失效?

回答

1

JWT不是認證機制,而是令牌格式。由於JWT是獨立的,您可以將它們用於無狀態身份驗證。但是,這並不意味着你的認證機制必須是無狀態的(儘管它有它的好處)。

有用於處理用戶鎖定/撤銷授權幾個選項:驗證JWT,看看如果用戶被鎖定

  • 訪問令牌都應該經過

    • 執行用戶的查找在每個請求是短暫的,所以你可以查找用戶請求新的訪問令牌接下來的時間(例如,使用刷新令牌),然後拒絕簽發新的訪問令牌
    • 或者,你可以黑名單發出的所有令牌通過將令牌的jti存儲在數據庫中(和remov在已經超過exp時間的情況下列入黑名單項目)。另請參見:https://auth0.com/blog/blacklist-json-web-token-api-keys/
    • 你可以看一下在智威湯遜的生命週期的特定JWT每N個請求或當X%的人確定的用戶已經通過,而不是在每一個請求這樣做。

    這些方法都不是完全無狀態的。一般來說,如果您希望可以撤消授權,則無狀態授權是不可能的。如果你想令牌完全無狀態,你應該確保它們的壽命儘可能短,並且發佈一個新的令牌不是無狀態的。

  • +1

    在這種情況下,爲什麼要使用JWT,在每個請求中生成唯一的字符串/標記並檢查標記有哪些好處? – Romper