假設一個用戶多次登錄不同的設備,然後他們決定他們想要註銷設備的,我們沒有刪除JWT這是該設備的權利提供了方式?阻止特定用戶JWT令牌?
這是我實施的,我不確定這是其他網站如何做,或者它是一個體面的做法。
- 用戶登錄
- 我創建了一個Redis的會話令牌,其具有關聯
- 我保存這個Redis的令牌的JWT
- 主題的用戶id +設備名稱我傳回了JWT。
既然用戶有JWT,他們現在可以訪問受保護的API端點。可以說用戶想要刪除這個會話,這是我所做的。
- 用戶獲取*爲特定的用戶ID(當然他們需要一個有效的JWT來獲取這個數據)
- 他們選擇他們想要摧毀redis的會議令牌Redis的會話令牌。
- 他們將該令牌發送到
/destroy/{token}
端點 - 使用該令牌將該令牌作爲主題的jwt將不再工作。
這樣做意味着在每個請求中,我將不得不反編譯jwt,獲取redis標記,並查看它是否仍然存在。我想這是不昂貴的使用redis,或任何其他內存數據庫todo。
這是一個堅實/有效的方式嗎?有沒有更好/更簡單的方法來做到這一點?
使用此設置,您是使用刷新令牌還是僅使用JWT訪問令牌? – Wonka