【问题标题】:Loopback: How to isolate a users queries to a specific datasource?Loopback:如何将用户查询隔离到特定数据源?
【发布时间】:2015-12-23 22:45:38
【问题描述】:

假设我有两个用户,A 和 B,ID 分别为 1 和 2。此外,假设我配置了两个数据源:X 和 Y。

对于某些给定的远程方法,如何隔离用户 A 向数据源 X 发出的所有查询,以及 B 向 Y 发出的所有查询?例如,假设 A 想通过 API 为某个模型运行“查找” - 我如何确保 A 将获得的唯一结果是可通过数据源 X 访问的结果?

【问题讨论】:

    标签: loopbackjs


    【解决方案1】:

    我不确定我是否完全理解您为什么要根据当前用户来决定数据源,但无论如何,我不确定您是否可以使用 LoopBack 来做到这一点……至少,不容易。 LoopBack 是一个模型驱动的框架——一切都源自模型。因此,所有 API 端点都通过一个模型(尽管您可以设置自定义路由)。每个模型都连接到一个数据源。

    所以,如果我点击/api/Widget/13,则无法在两个数据源之间切换findById() 调用,它总是会点击模型连接到的任何数据源。

    好的,说了这么多,我看到的解决方案是:

    1. Create a "dispatcher" 并让该模型做适当的事情。
    2. 在您现有的模型上创建一个custom remote method 并在那里做出决策,并在正确的数据源上创建find 等。

    在任何一种情况下,它都不是直截了当的,也不是内置的。仅供参考,如果您需要获取数据源,您可以从 LoopBack 应用程序对象访问它:MyModel.app.datasources.ds1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多