Node.js使用安全路由jwt获得401未经授权

时间:2020-06-29 19:56:14

标签: javascript mysql node.js jwt middleware

我在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!'
            });
        }
    }
};

1 个答案:

答案 0 :(得分:0)

我看到你知道了

我的意思是(或我的问题)与此代码行

req.headers.authorization.split(' ')[1]

这是错误的,当我刚刚向您发送令牌之类的东西时会发生

tokennnnnnnnnnn

所以我的解决方法是这样的(通常是'Bearer')

那为什么不这样呢

req.header.authorization.replace(/bearer/i, '')

类似的东西,我认为它会很好! <3