2016-09-29 13 views
0

ペイロードのexpフィールドはどのように表現する必要がありますか?expフィールドの定義が不明確jwt.sign

jwt.sign({ 
     _id: this._id, 
     email: this.email, 
     name: this.name, 
     exp: //how do I set this value ?, 
    }, "MY_SECRET"); 

それは、どこにも明確に例のコードからドキュメント

https://github.com/auth0/node-jsonwebtoken

で説明していないです、私はここにある:

userSchema.methods.generateJwt = function() { 
    var expiry = new Date(); 
    expiry.setDate(expiry.getDate() + 7); 

    return jwt.sign({ 
     _id: this._id, 
     email: this.email, 
     name: this.name, 
     exp: parseInt(expiry.getTime()/1000), 
    }, "MY_SECRET"); 
}; 

は、私が想定し、 "EXP" は、トークンの有効期限を表現しますエポックから始まる秒数。 正しいですか?

+0

[JWT(JSON Web Token)自動有効期限の延長]の可能な複製(http://stackoverflow.com/questions/26739167/jwt-json-web-token-automatic-prolongation-of-expiration) –

+0

はい、 '' 'expiry''は数秒で終わる –

答えて

0

すべてはアプリケーションの種類によって異なりますが、ここでは推奨されるアプローチです。

有効なパターンは、期限が切れる前にトークンをリフレッシュすることです。

トークンの有効期限を1週間に設定し、ユーザーがWebアプリケーションを開くたびに1時間ごとにトークンを更新します。

トークンをリフレッシュするには、有効期限切れの有効期限切れのJWTを受信し、新しい有効期限フィールドを持つ同じ署名付きJWTを返す新しいエンドポイントが必要です。次に、Webアプリケーションはトークンをどこかに格納します。

0

ちょうどテストされたとはい "exp"は、エポックから始まるトークンの有効期限を秒単位で表しますが、ドキュメントには記載されていません。

関連する問題