在我的express/mongoose应用程序中,我正在定义verifyOrdinaryUser函数来检查用户是否在服务器上进行了身份验证.哪个效果很好,但是我在下面定义了verifyAdmin函数以检查用户是否也具有管理员权限(我使用passport-local-mongoose模块来定义用户模式).正如您所看到的,在verifyOrdinaryUser()函数中检查了用户的令牌,它会将一个名为decoding的新属性加载到我正在尝试在verifyAdmin中重用的请求对象,这就是我在邮递员中收到以下错误的时候.
{
"message": "Cannot read property '_doc' of undefined",
"error": {}
}
Run Code Online (Sandbox Code Playgroud)
以下是
var User = require('../models/user');
var jwt = require('jsonwebtoken');
var config = require('../config.js');
exports.getToken = function (user) {
return jwt.sign(user, config.secretKey, {
expiresIn: 3600
});
};
exports.verifyOrdinaryUser = function (req, res, next) {
// check header or url parameters or post parameters for token
var token = req.body.token || req.query.token || req.headers['x-access-token'];
// decode token
if (token) {
// verifies secret and checks exp
jwt.verify(token, config.secretKey, function (err, …Run Code Online (Sandbox Code Playgroud)