关于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
906
comments0
ShiinaAiiko.NO.00004欢迎旅行者到此一游
Recommended
No Content Published Yet