JSON Web Token(縮寫 JWT)是目前最流行的跨域認證解決方案前端
var jwt = require('jsonwebtoken');
在登陸時,若是用戶名和密碼正確,則使用jwt生成token,返回給前端web
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,使用jwt解析此tokenjson
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; } } }) }