【问题标题】:How do i restrict tasks between roles i.e admin and users in express.js我如何限制角色之间的任务,即 express.js 中的管理员和用户
【发布时间】:2026-01-07 07:10:01
【问题描述】:

在我的项目中,我有两个角色

他们是 管理员和 用户

我的要求是,我必须限制用户任务,如管理员只能添加用户,但即使以用户身份登录,我也可以发布。我必须克服这个问题,任何人都可以帮助我。我正在使用 express.js,mongodb 服务器端,客户端 angular.js

这是我的代码

添加用户功能:

exports.adduser = function(req, res) {
    delete req.body.roles;

    var user = new User(req.body);
    var message = null;
// Add missing user fields
    user.provider = 'local';
    user.displayName = user.firstName + ' ' + user.lastName;
    user.save(function(err) {
        if (err) {
            return res.status(400).send({
                message: errorHandler.getErrorMessage(err)
            });
        } else {
       //send mail to user
agenda.now('New_User_Create_Notify', {data:user.username});
res.jsonp(user);



        }
    });
};

路线:::

app.route('/auth/adduser').post(users.adduser);

【问题讨论】:

    标签: javascript angularjs mongodb express mongoose


    【解决方案1】:

    如果您设置了用户角色

    您可以在 adduser 函数中执行此操作

    if(req.body.roles.indexOf("admin") == -1){
    return res.status(403).send({
                    message:"user doesnt have required permision"
                });
    }else{
       user.save(function(err) {
            if (err) {
                return res.status(400).send({
                    message: errorHandler.getErrorMessage(err)
                });
            } else {
           //send mail to user
    agenda.now('New_User_Create_Notify', {data:user.username});
    res.jsonp(user);
    
      }
    

    }

    【讨论】:

    • 感谢您的回复,我收到这样的错误“无法校准方法 indexof 未定义”也添加了此内容,但无法解决我的问题 export.adduser = function(req, res, io)
    最近更新 更多