簡體   English   中英

在 JWT 身份驗證設置中處理刷新令牌的最可擴展/最安全的方法是什么?

[英]What is the most scalable/secure way to handle refresh tokens in a JWT authentication setup?

我正在構建自己的身份驗證微服務,雖然我已經完成了主要設置(生成訪問令牌等),但在刷新令牌方面我有點迷失。

我覺得有很多不同的方法來處理這個問題。

  • 您可以將它們存儲在 Redis 或數據庫中。
  • 您可以使用白名單或黑名單

現在,我的想法是添加另一個將有效刷新令牌鏈接到用戶實體的數據庫表。 當用戶點擊注銷端點時,刷新令牌將被銷毀。

我想知道這是否是一個好的解決方案,否則,是否還有其他可能的解決方案需要考慮。 我在谷歌搜索時看過很多文章,但它們來自 2015 年到 2019 年之間的任何地方,而且它們都有不同的方法。

刷新令牌的問題不在於您將它們存儲在服務器端的位置或方式,以及您是否以及如何將它們存儲在客戶端。

這完全取決於您是否可以信任您的客戶端(使用令牌的軟件)來保守秘密。 您只想向您可以信任的客戶端發出刷新令牌,以確保這些令牌的安全。 通常,這意味着僅向機密客戶端(即在 Web 服務器上運行的 Web 應用程序)發出刷新令牌。 在使用刷新令牌時,這些客戶端還可以擁有自己的(客戶端)憑據以進行身份​​驗證。

對於公共(非機密)客戶端,如單頁應用程序,一些 OAuth2 庫使用隱藏的 IFRAME 和與授權服務器的 cookie 會話來發布新的訪問令牌。

因此,您的問題的答案取決於您將使用的客戶端類型。

暫無
暫無

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

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