如何解决JWT验证给无效令牌错误?

时间:2019-10-19 21:49:43

标签: javascript api jwt

我已在节点应用程序中使用jsonwebtoken进行令牌验证。 jwt.sign在这里工作正常。但是,当我致电jwt.verify时,它将返回以下错误:

  

JsonWebTokenError:Object.module.exports处的令牌无效[验证](C:\ Users \ dell \ Desktop \ MinorProject \ API \ node_modules \ jsonwebtoken \ verify.js:75:17)

module.exports = function (req, res, next) {

    var token;


    if (req.headers.token) {
        token = req.headers.token;
    }
    if (req.headers['x-access-token']) {
        token = req.headers['x-access-token'];
    }
    if (req.headers['authorization']) {
        token = req.headers['authorization'];
    }
    if (req.query.token) {
        token = req.query.token
    }

    if (token) {
        jwt.verify(token, config.jwtSecretKey, function (err, verified) {
            if (err) {
                return next(err);
            }

            MongoClient.connect(config.dbUrl, function (err, client) {
                if (err) {
                    return next(err);
                }
                var db = client.db(config.dbName);
                db.collection('users')
                    .find({ _id: new mongodb.ObjectID(verified._id) })
                    .toArray(function (err, users) {
                        if (err) {
                            return next(err);
                        }
                        if (Array.isArray(users) && users.length) {
                            req.loggedInUser = users[0];
                            return next();
                        } else {
                            res.status(404).json({
                                message: 'user removed from system',
                            })
                        }
                    })
            })
        });
    } else {
        res.status(400).json({
            message: "Token Not Provided",
        })
    }

};

0 个答案:

没有答案