2017-09-27 22 views
1

JWT通過在令牌本身中包含權限,承諾速度會更快/更簡單。然而,我的問題是:假設一個用戶已經登錄,並且正在使用一個包含權限信息的JWT,允許他們訪問A和B.
然後管理員或其他用戶出現並授予該用戶查看C的權限,而用戶仍然登錄。但是由於用戶仍在使用舊的JWT,他仍然無法訪問C.如何使用JWT處理更改權限

此處有哪些選項?將令牌黑名單並強制用戶再次登錄?或忘記基於標記的權限?

回答

1

JWT令牌存儲在localStorage或cookie中,因此這是您的應用程序面臨更改權限時的問題。

您可以執行這兩個東西: -

  1. 更改你的祕密,這將使無效的所有標記,因此將迫使重新登錄所有新權限的用戶。

  2. 使用具有唯一SECRET的每個用戶的刷新標記機制,存儲在數據庫中,因此通過更改此SECRET將強制該特定用戶重新登錄並獲取具有更新權限的新標記。