2017-03-29 11 views
0

私はMEANに基づいてWebアプリケーションを作成していますが、次の質問があります。Node.jsとjsonwebtokenでJWTの有効期限を行う場所

トークン(JWT)の有効期限はどこですか?私がやっているのは、期限切れのないトークンを作成することです。クライアントでは、そのトークンと10分の有効期限を持つクッキーを作成しました。

このクッキーでは、私が行うすべてのリクエストに10分を追加します。ユーザーが10分間アクティブでない場合、Cookieは失効し、要求はトークンなしで行われます。 Chromeの場合

+0

トークン自体にそれを保存しないのはなぜですか? –

+0

@Joe Clayの答えを読んで、JWTの有効期限がないという方向性に沿って、それを決定するためにクッキーに頼らざるを得ない理由を確認してください。 JWTをlocalStorageに保存することができます。トークンをクッキーに保存する必要がある場合は、少なくともHttpOnlyとして設定してください(https://www.owasp.org/index.php/HttpOnly。 –

答えて

1

F12➡️ポストマン

おっとのようなRESTクライアントへのアプリケーション]タブ➡️クッキー➡️コピー&ペーストトークンが、私はちょうどあなたのAPIのための永遠のトークンを得ました!

言い換えれば、あなたが疑ったように、これは良いことではありません。有効期限はトークンのペイロードになければなりません。そうすれば誰もそれを変更していないことを確認できます。サーバーの秘密の値で署名されるためです。実際has this functionality built-in

ザ・ノードJWTライブラリ:

jwt.sign({ 
    // 1 hour expiration 
    exp: Math.floor(Date.now()/1000) + (60 * 60), 
    data: 'foobar' 
}, 'secret'); 

これは、あなたが/ 使用クッキーあなたのトークンと有効期限、しかし、それだけではISN」に頼るべきではないことができないということではありません安全です。

+0

有効期限を延長するか、有効期限が切れる前に新しいトークンを生成する必要がありますか? – elcabezon

+0

@elcabezon:[この記事は](https://auth0.com/blog/refresh-tokens-what-彼らは正しい方向にあなたを指し示すべきです。 –