小编for*_*ace的帖子

Nodejs/mongodb-检查用户是否具有管理员权限(基于令牌的身份验证)

在我的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)

authentication mongodb node.js express jwt

6
推荐指数
3
解决办法
6457
查看次数

标签 统计

authentication ×1

express ×1

jwt ×1

mongodb ×1

node.js ×1