JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案
引入jwt
var jwt = require('jsonwebtoken');
生成token
在登录时,如果用户名和密码正确,则使用jwt生成token,返回给前端
let { username, password } = req.body;
.
.
.
//jwt生成加密token,username是公文,密钥是“secret”,1小时后过期
token = jwt.sign({ username }, "secret", { expiresIn: 60 * 60 * 1 });
.
.
.
res.json({
code: 0, msg: '登录成功', token: token, userName: username
});
解析token
在所有需要登录验证的请求中,获取请求头中的token,使用jwt解析此token
let token = req.headers.authorization;
if (token) {
jwt.verify(token, 'secret', (err, decoded) => {
if (err) {
switch (err.name) {
case 'JsonWebTokenError':
res.status(403).send({ code: -1, msg: '无效的token' });
break;
case 'TokenExpiredError':
res.status(403).send({ code: -1, msg: 'token过期' });
break;
}
}
})
}
来源:oschina
链接:https://my.oschina.net/u/3986435/blog/3054721