环回:如何将用户查询隔离到特定数据源?

时间:2015-12-23 06:33:13

标签: loopbackjs

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

如何将用户A发出的所有查询与数据源X隔离,并且对于某些给定的远程方法,如何将B到Y隔离?例如,假设A想通过API为某些模型运行'find' - 我怎样才能确保A得到的唯一结果是那些可通过数据源X访问的结果?

1 个答案:

答案 0 :(得分:1)

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

因此,如果我点击/api/Widget/13,则无法在两个数据源之间进行findById()调用切换,它将始终触及模型所连接的任何数据源。

好的,所有人都说,我看到的解决方案是:

  1. Create a "dispatcher"并让该模型做适当的事情。
  2. 在现有模型上创建custom remote method并在那里做出决策,并在正确的数据源上执行find等。
  3. 在任何一种情况下,它都不是直截了当的,也不是内置的。仅供参考,如果您需要获取数据源,可以从LoopBack应用程序对象访问它:MyModel.app.datasources.ds1