NodeJs Json WebToken
4666 ワード
モジュールをインポート
cmdに以下のコマンドを入力し、jswモジュールをインストールします.
1-tokenの有効期限を設定します.
もしあなたがexpires InMinutesを使ってtokenの期限切れを設定したら、すみません、次のような異常があります.
cmdに以下のコマンドを入力し、jswモジュールをインストールします.
npm install jsonwebtoken
jsファイルで参照 var jwt = require("jsonwebtoken");
Tokenを生成var content ={msg:"today is a good day"}; // token
var secretOrPrivateKey="I am a goog man!" // key( )
var token = jwt.sign(content, secretOrPrivateKey, {
expiresIn: 60*60*24 // 24
});
console.log("token :" +token );
Tokenを検証 var token = rq.body.token || rq.query.token || rq.headers["x-access-token"]; // body query header token
jwt.verify(token, secretOrPrivateKey, function (err, decode) {
if (err) { // / token
rs.json({err:err})
} else {
rq.decode = decode;
console.log(decode.msg); // today is a good day
next();
}
})
注意事項1-tokenの有効期限を設定します.
もしあなたがexpires InMinutesを使ってtokenの期限切れを設定したら、すみません、次のような異常があります.
ValidationError: "expiresInMinutes" is not allowed
expires Inを使用してください.秒単位または説明した時間スパン文字列はrauchg/MSを表します.例えば:60「2 days」「10 h」「7 d」
{expiresIn: 60} // 60 ( )
{expiresIn: "2 days"} // 2 ( )
......
('1d') // 86400000
('10h') // 36000000
('2.5 hrs') // 9000000
('2h') // 7200000
('1m') // 60000
('5s') // 5000
('1y') // 31557600000
2-verify時に戻るerrの値 "err": {
"name": "TokenExpiredError",
"message": "jwt expired", // token
"expiredAt": "2016-11-07T03:31:25.000Z"
}
"err": {
"name": "JsonWebTokenError",
"message": "invalid token" // / token
}