如何在 SailsJS 1.x 中使用蓝图路由实现行级权限?

How do I implement row-level permissions using blueprint routes in SailsJS 1.x?

我正在使用 Sails 版本 1.2.3 构建 rest APIs。我们的应用程序需要某些实体的行级权限。例如,对于相同的API,某些users/roles其余API应该return数据的子集。对于高级用户,其余 API 应该 return 完整的数据集。

我不想为我们的应用程序构建自定义 routes/actions,而是使用 sails 蓝图路线,并对蓝图路线应用必要的行级权限。

我已经尝试查看 sails-auth 和 sails-permissions npm 包,但它们不适用于 sails 1.x。

在当前版本的 SailsJS 中有没有办法做到这一点?

谢谢!

好吧,您的应用似乎不是教程阶段的应用,您应该考虑完全禁用蓝图,这存在安全风险。然后,您可以处理控制器或服务中给定的 roles/data 的逻辑。

sails: disable `blueprints actions` in production, since it creates a huge security footprint?

我同意@mansim。但是,如果你想这样做,你必须根据要求覆盖 find 和 findOne 控制器。

步骤应该如下:

  1. 创建将在 'req' 对象中设置权限标志的策略。
  2. 在 findOne/find 方法中从 'req' 读取标志。
  3. 使用_.omit(或任何javascript方法)删除您不想发送的详细信息。