【问题标题】:Should I using separated express server for different type of user我应该为不同类型的用户使用单独的快递服务器吗
【发布时间】:2018-03-26 13:05:41
【问题描述】:

我正在尝试使用 node.js+express.js 来构建 Web 服务器。他们是我网站中的两种用户:普通用户和管理员。经理有权在我的数据库的某些字段中写入数据,但普通用户只能读取它们。

所以我的问题是:我应该为经理和普通用户使用分离的快速服务器实例吗?所以他们使用不同的端口,不会互相打扰?

【问题讨论】:

标签: javascript node.js express server


【解决方案1】:

有很多方法可以为您的后端 Node.js 服务器设置用户权限,但根据角色设置单独的服务器实例不应该是其中之一。 NPM 生态系统中已经有许多包可以帮助您解决问题,但取决于它可能像中间件一样简单,您可以自己编写 Express.js 来解决您的问题。示例:

export default function permit(...allowed) {
  const isAllowed = role => allowed.indexOf(role) > -1;

  // return a middleware
  return (req, res, next) => {
    if (req.user && isAllowed(req.user.role))
      next(); // role is allowed, so continue on the next middleware
    else {
      response.status(403).json({message: "Forbidden"}); // user is forbidden
    }
  }
}

// Use as so
app.use("/api/private", permit("admin"));
app.use(["/api/foo", "/api/bar"], permit("owner", "employee"));

middleware

【讨论】:

    猜你喜欢
    • 2022-08-11
    • 2021-05-08
    • 2020-02-19
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    相关资源
    最近更新 更多