关于Web程序与Nodejs后端通过JWT进行验证。
内容主要是指Vue开发的Web程序与Nodejs后端通过JWT进行验证的简单使用方法。
后端 生成Token
安装依赖包
npm install jsonwebtoken
生成Token
var jwt = require('jsonwebtoken');
var token = jwt.sign({
// 第一个参数为payload信息、可以放置一些非私密的信息、如用户名UID性别等等?
data: {
uid: 1,
username: 'admin',
gender: 1
}
// 第二个参数为加密的私钥、私钥要放在服务器端不得公开、防止被盗用。
}, 'secret', {
// 加密算法( 默认值: HS256)
// algorithm:
// expiresIn: 以秒表示或描述时间跨度zeit / ms的字符串。 如60, "2 days",
// "10h",
// "7d",
// Expiration time, 过期时间
expiresIn: 60 * 60,
// notBefore: 以秒表示或描述时间跨度zeit / ms的字符串。 如: 60, "2days",
// "10h",
// "7d"
// audience: Audience, 观众
// issuer: Issuer, 发行者
issuer: 'admin'
// jwtid: JWT ID
// subject: Subject, 主题
// noTimestamp
// header
});
// 之后传给用户即可
前端 获取与发送信息
存储Token
Token可以选择存储到Cookies或者本地存储里。
发送Token
在发送请求的时候、可以将token信息写入headers里一起发送、也可以作为参数发送
后端 验证Token
验证Token
// iat签发时间,exp过期时间
// var decoded = jwt.verify(token, 'secret1');
// console.log(Boolean(decoded)) // bar
// 封装的验证函数便于使用
function verifyJwt(token) {
return new Promise((res, rej) => {
try {
// 第一个参数是token,第二个参数是生成token前使用的密钥,第三个参数则是可以对生成信息进行验证
var decoded = jwt.verify(token, 'secret',{
issuer: 'admin'
});
// console.log(decoded);
res(decoded)
} catch (err) {
// err
// console.log(err);
res(false)
}
})
}
verifyJwt(token).then(data => {
// 此时data为true说明Token有效、反之无效
console.log(data);
});
重庆市
阴转中雨
Windows
like
dislike
comment
1087
comments0
ShiinaAiiko.NO.00004欢迎旅行者到此一游
推荐
从未发布过哦