2016-12-24 30 views
1

如您所知,使用基於令牌的身份驗證而不是基於會話的基於一些很好的理由。JWT中的時間到期問題

在會話基礎上,當然會有到期時間。所以如果用戶一段時間不活躍,他的會話就會過期。但在到期之前,如果他向服務器發送請求,他的時間將會延長。

關於JWT有一個很棒的教程here。我有一個關於令牌的到期時間的問題。想象一下,我們將到期時間設置爲100秒,然後我們簽署該令牌。用戶是否激活並不重要。在100秒後該令牌將不再有效。這會影響用戶。有什麼辦法延長時間嗎?

這是一個真正的方法,或者我可能有一個錯誤。任何想法?

+0

我回答了你的問題嗎? – Maxwelll

回答

1

如果我理解正確的問題,它是相當簡單的改變期間創建JWT令牌到期...

的「EXP」(過期時間)要求確定的到期時間 或之後JWT不得接受處理。處理「exp」索賠要求當前日期/時間 必須在「exp」索賠中列出的到期日期/時間之前。

更多信息可以在這裏找到https://tools.ietf.org/html/rfc7519#section-4.1.4

基本上exp鍵採用Unix時間戳 - 從現在設定的時間戳>百秒,你會實現你的目標。

要「刷新」令牌,您的API需要一個接收有效的JWT的服務,並返回帶有更新過期的相同帶符號JWT。

+0

這裏也是一個用於生成unix時間戳的有用工具http://www.onlineconversion.com/unix_time.htm – Maxwelll

+0

謝謝,但我認爲你不明白我的問題。讓我再解釋一下。想象一下,我們使用基於會話的認證。如果用戶刷新頁面直到1個月,他永遠不會註銷。因爲在每次刷新中,會話到期延期。但在這裏,當我們將'exp'設置爲現在100秒後,即使用戶處於活動狀態,他也會突然退出。 –

+0

你不能「現在設置exp爲100秒」你的意思對我來說沒有意義......指定一個日期/時間你想令牌過期並將其轉換爲unix時間戳它非常簡單 – Maxwelll