【nodejs 】 jsonwebtoken 的练习 和tool 的封装案例
iat 为自动生成的属性 即创建时间戳
验证超时时 是需要try catch 里面捕获错误名 才行
/*
npm install jsonwebtoken
npm home jsonwebtoken
*/
var wzkey = "wzskylinejsonwebtoken"
var jwt = require('jsonwebtoken');
var token = jwt.sign({ foo: 'bar',exp: Math.floor(Date.now() / 1000) + (1 * 60) }, wzkey);
var older_token = jwt.sign({ foo: 'bar', exp: Math.floor(Date.now() / 1000) + (1 * 60), iat: Math.floor(Date.now() / 1000) - 30 }, wzkey);
console.log({ token, older_token });
var decoded = jwt.verify(token, wzkey);
var older_decoded = jwt.verify(token, wzkey);
console.log({ decoded, older_decoded });
var tool ={
makeToken(data={},time = 24*60*60){
return jwt.sign(Object.assign(data, { exp: Math.floor(Date.now() / 1000) + time }), wzkey)
},
checkToken(token){
try {
jwt.verify(token, wzkey);
return true
} catch (error) { // TokenExpiredError
return false
}
},
}/*
npm install jsonwebtoken
npm home jsonwebtoken
*/
var wzkey = "wzskylinejsonwebtoken"
var jwt = require('jsonwebtoken');
var token = jwt.sign({ foo: 'bar',exp: Math.floor(Date.now() / 1000) + (1 * 60) }, wzkey);
var older_token = jwt.sign({ foo: 'bar', exp: Math.floor(Date.now() / 1000) + (1 * 60), iat: Math.floor(Date.now() / 1000) - 30 }, wzkey);
console.log({ token, older_token });
var decoded = jwt.verify(token, wzkey);
var older_decoded = jwt.verify(token, wzkey);
console.log({ decoded, older_decoded });
var tool ={
makeToken(data={},time = 24*60*60){
return jwt.sign(Object.assign(data, { exp: Math.floor(Date.now() / 1000) + time }), wzkey)
},
checkToken(token){
try {
jwt.verify(token, wzkey);
return true
} catch (error) { // TokenExpiredError
return false
}
},
}