我如何对用户组实施许可策略?

时间:2019-01-08 19:27:34

标签: node.js mongodb authentication permissions

我正在建立一个需要大量用户的系统。用户属于不同的组。每个组都有一个包含其权限的数组(例如,“主页”:“ rw”,“配置文件”:“ rw”)。考虑维护,在我的代码中实现该功能的最佳方法是什么?

只有拥有“所有者”权限的用户才能删除。 这是我用户的路线:

app.route('/users/delete/:userId').put(users.delete);

app.route('/users').get(users.checkUser, users.list);

(删除路由实际上会从用户更改“状态”的状态,这就是“ PUT”请求的原因)。例如,让所有用户调用checkUser。

我正在考虑在受保护的每条路由中创建一个中间件并对其进行处理,但是,此方法有几个问题需要维护。

这是我的用户控制器,用于检查从用户传递来的JWT令牌:

exports.checkUser = function (req, res, next) {
  passport.authenticate('jwt', { session: false }, (err, user, info) => {

    if (err) {
      console.log(err);
      return next(err);
    }

    if (!user) {
      console.log("Não autenticado");
      return res.sendStatus(403);
    } else {
      console.log("Autenticado");
      return next();
    }
  })(req, res, next);
};

有人有提示吗?

1 个答案:

答案 0 :(得分:0)

听起来您正在尝试构建sftp服务器/客户端基础结构。

与其建议您从头开始编写一个应用程序,不建议您看一下其他人所做的事情,因为构建此类应用程序可能会非常耗时。

参考:

https://github.com/atmoz/sftp