【发布时间】:2021-06-24 23:36:48
【问题描述】:
NodeJS 有问题。
我创建了一个中间件,用于检查请求中是否存在 cookie 中的 JWT,并尝试对其进行验证。
问题是,我试图将 JWT 分配给一个变量并导航到例如“localhost:80/index”,NodeJS 返回一个错误:
“TypeError:无法读取未定义的属性'jwt'”。
中间件的名称是“authenticateToken”。
这是 app.js 中的路由:
app.get('/index', authenticateToken, (req, res) => { res.render('index'); });
我正在传递这个中间件:
const jwt = require('jsonwebtoken');
function authenticateToken(req, res, next) {
var token = req.cookies.jwt;
if (token) {
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, function(err, decodedToken) {
if (err) {
console.log(err.message);
res.redirect('/login');
}
else {
console.log(decodedToken);
next();
}
});
}
else {
res.redirect('/login');
}
}
module.exports = { authenticateToken };
【问题讨论】: