【发布时间】:2022-12-17 12:31:55
【问题描述】:
我正在创建一个 JWT 令牌,但出现了这个错误。 而且我收到此错误:TypeError:无法读取未定义的属性(读取'jwt') 这是代码:
const maxAge = 3*24*60*60;
db.query('SELECT * FROM USERS WHERE EMAIL=?', [email], async (err, results, fields)=>{
if(err){
console.log(err);
}
else if(results.length > 0)
{
const comparison = await bcrypt.compare(password, results[0].password);
if(comparison){
const token = jwt.sign({user_id:results[0].user_id, name:results[0].name},
process.env.SECRET_KEY , { expiresIn:maxAge });
res.cookie('jwt', token, { httpOnly:true, maxAge:maxAge*1000 });
console.log(token);
return res.render('user', {
message: results[0].name
});
}
else{
res.render('login', {
message: 'Incorrect Email and Password.'
});
}
}
else{
res.render('login', {
message: "Email doesn't Exists."
});
}
})
这是中间件功能的代码
const requireAuth = (req, res, next)=>{
const token = res.cookies.jwt; // Here this error came up
if(token){
jwt.verify(token, process.env.SECRET_KEY, (err, decoded)=>{
if(err){
console.log(' You are not logged in.');
res.redirect("/");
}
else{
console.log(decoded);
next();
}
});
}
else{
res.redirect('/');
}
}
【问题讨论】:
-
你能在这里粘贴你的依赖关系,你的
require/import吗?您的服务器依赖项名称是什么?它将帮助我理解这里使用的 JWT 依赖项。
标签: node.js authentication jwt