
什么是JWT
直接点阮一峰大神的JSON Web Token 入门教程,主要是想记一下node里边最简单的使用方法。它就是这个东西,平时做登录有用到的,后端返回来的一个Token令牌,下面的图长左边那样,看着就很熟悉了,经常在Headers带过去的。

Node.js + JWT
Node.js能写服务,那肯定就会有Node版本的JWT了。链接:JWT官网。往下拉会找到这个,然后点右下角按钮可以进去github页,里边有使用的文档。

文档里边很详细,首先还是一样的先install,然后图里是使用的方法

代码如下:
// 引入jsonwebtoken
const jwt = require('jsonwebtoken');
const JWT_STRING = 'JOSE' //加密的key(密钥)
class Jwt {
constructor(data){
this.data = data
}
// 生成Token
generateToken() {
let params = this.data
let createdTime = Math.floor(Date.now() / 1000);
console.log('------------')
console.log(params)
console.log('------------')
let token = jwt.sign({
params,
exp:createdTime + 60 * 10080 //10080分钟后过期
}, JWT_STRING);
return token
}
// 校验Token
verifyToken() {
let token = this.data
let res
try {
let result = jwt.verify(token, JWT_STRING) || {}
console.log(result)
let {exp = 0} = result, current = Math.floor(Date.now() / 1000);
if (current <= exp) {
res = result || {};
}
} catch(e) {
res = 'err';
return res
}
return res
}
}
module.exports = Jwt;
上面写好的一个方法,然后exports暴露出去。
然后在需要使用的js文件里面引入
const JwtUtil = require('../utils/jwt');
根据自己的登录逻辑去返回出去给接口,我这里有写了比较多,你可以直接在node里面console也行,我这代码太多就不贴出来了。

我这里是登录成功的话返回信息同时吧token返回出去,看下接口有没有生成到token返回出去。

网友评论