2017-04-17 25 views
1

我讀過很多關於這方面的文章和Github問題,但我不確定最佳解決方案是什麼。對於上下文,我有一個laravel API,通過身份驗證,可以發佈一個小時的JWT。當第一個API請求在該小時後發生時,API會返回401令牌到期錯誤。據我所知,有兩種方式來處理刷新令牌;應該刷新智威湯遜是API還是客戶的責任?

  1. 在API接收令牌時,如果已經過期,但我們是刷新TTL內,刷新令牌,繼續請求正常,並在標題中回傳的新的令牌
  2. 在客戶端,當401響應返回一個到期代碼時,向舊的令牌請求一個API端點,讓API刷新並返回一個新的令牌,然後重播任何未決的API請求。

項目2聽起來不必要的複雜,因爲您將不得不攔截並排隊來自客戶端的任何請求。哪種方式最適合處理?

回答

0
  1. 在API當接收到的道理,如果它已過期,但我們是刷新TTL內,刷新令牌,繼續請求正常,並在標題中回傳的新的令牌

第一個比第二個更有意義,更容易,因爲如果令牌已過期並且您不必等待401響應重播那些不是的API請求對UX有好處。

另一種方法是創建一個彈出窗口並讓用戶選擇是否要獲取新的令牌。

+0

我認爲這就是我要去的 - 設置令牌有一個小時的生命,但每隔30分鐘或在頁面刷新時,嘗試在幕後刷新令牌 –