我在js节点和mysql中创建了一个后端,以便能够使用jwt登录和访问安全路由。 到现在为止,我已经能够登录并获得令牌。我创建了一个受中间件保护的路由(如下面的代码),但是当我尝试获取此路由时,总是会收到“ 401未经授权”并且错误“您的会话无效”。我一步一步地遵循this教程,但对我不起作用。完整的代码在链接中以获取详细信息。
预先感谢:)
module.exports = {
isLoggedIn: (req, res, next) => {
try {
const token = req.headers.authorization.split(' ')[1];
const decoded = jwt.verify(
token,
'SECRETKEY'
);
req.userData = decoded;
next();
} catch (err) {
return res.status(401).send({
msg: 'Your session is not valid!'
});
}
}
};
答案 0 :(得分:0)
我看到你知道了
我的意思是(或我的问题)与此代码行
req.headers.authorization.split(' ')[1]
这是错误的,当我刚刚向您发送令牌之类的东西时会发生
tokennnnnnnnnnn
所以我的解决方法是这样的(通常是'Bearer')
那为什么不这样呢
req.header.authorization.replace(/bearer/i, '')
类似的东西,我认为它会很好! <3