2016-12-24 10 views
1

ご存じのように、セッションベースの代わりにトークンベースの認証を使用するいくつかの理由があります。JWTの時間切れ問題

セッションベースでは、もちろん有効期限があります。したがって、ユーザーがしばらくアクティブでない場合、セッションは期限切れになります。しかし、期限切れになる前に、サーバーに要求を送信すると、彼の時間は延長されます。

hereについては、JWTという素晴らしいチュートリアルがあります。トークンの有効期限はです。です。有効期限を100秒に設定した場合、トークンに署名するとします。ユーザーがアクティブであるかどうかは関係ありません。 100秒後にトークンはもう有効ではありません。これはユーザーを煩わせる。時間を延長する方法はありますか?

本当のアプローチか、間違いがありますか?何か案が?

+0

私はあなたの質問に答えましたか? – Maxwelll

答えて

1

私が正しく質問を理解していれば、作成中JWTトークンの有効期限を変更することが非常に簡単です...

「EXP」(有効期限)主張は に有効期限を特定しますか、その後、処理のためにJWTを受け入れてはならない(MUST NOT)。 "exp"クレームの処理では、現在の日付/時刻 は、 "exp"クレームに記載されている有効期限日以前でなければなりません。

詳細については、こちらをご覧くださいhttps://tools.ietf.org/html/rfc7519#section-4.1.4

は基本的にexpキーは、UNIXタイムスタンプを取ることができます - 今から> 100秒にタイムスタンプを設定し、あなたの目標を達成します。

トークンを「リフレッシュする」には、有効なJWTを受信し、更新された有効期限を持つ同じ署名付きJWTを返すサービスが必要です。

+0

は、UNIXのタイムスタンプを生成するための便利なツールです。http://www.onlineconversion.com/unix_time.htm – Maxwelll

+0

ありがとうございます。でも、私の質問は分かりませんでした。私はもっ​​と説明しましょう。セッションベースの認証を使用するとします。ユーザーが1ヶ月までページをリフレッシュすると、彼は決してログアウトしません。リフレッシュごとにセッションの有効期限が延長されるためです。しかし、ここで、 'exp'を100秒に設定すると、ユーザーがアクティブであっても突然ログアウトされます。 –

+0

あなたは私には意味がないと言っていることを「今すぐ100秒後に設定する」ことはできません...トークンを期限切れにする日付/時刻を指定し、それをUnixのタイムスタンプに変換します。それはかなりシンプルです – Maxwelll

関連する問題