node後端使用jwt實現跨域認證--生成token、驗證token是否無效和過期
阿新 • • 發佈:2019-05-27
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;