当我从user_controller.js调用函数verifyToken时,结果始终是不确定的...但是我在verifyToken内部返回了一个结果,在token_management.js中创建...为什么?
这是我的本地主机中的一个nodejs服务器,带有mongodb数据库。最新版本。
USER_CONTROLLER.JS
const Token = require('../token_management');
// User login action
exports.login = function (req, res) {
const query = User.find({$and: [{email: req.params.email}, {password: req.params.password}]});
User.updateOne(query, {$set: {last_visit: new Date()}}, function () {
});
User.find(query, function (err, result) {
result.map(function (user) {
Token.verifyToken(req);
console.log(Token.verifyToken(req));
if (err) {
res.send(err);
} else if (user.length === 0) {
res.send('User not found! Bad email or password.');
} else if (Token.verifyToken(req) === undefined) {
Token.createToken(user.name, user.surname, user.email);
res.send('New token created!');
} else {
res.json({
message: 'User details loading..',
data: user
});
}
});
});
};
TOKEN_MANAGEMENT.JS
// Permit verify token when user sign in
exports.verifyToken = function (req) {
const bearerHeader = req.headers['authorization'];
if (typeof bearerHeader !== 'undefined') {
const bearer = bearerHeader.split(' ');
const token = bearer[1];
// JWT method to verify an existing token
JWT.verify(
// Current token (find in database)
token,
// Token key to decrypt
'seppa_api_key',
function (err, decoded) {
// Token creation
if (err) {
return err;
}
// Valid token
else {
return decoded;
}
})
}
};
console.log(Token.verifyToken(req));的结果;总是未定义...(第11行)