【发布时间】:2015-12-23 22:45:38
【问题描述】:
假设我有两个用户,A 和 B,ID 分别为 1 和 2。此外,假设我配置了两个数据源:X 和 Y。
对于某些给定的远程方法,如何隔离用户 A 向数据源 X 发出的所有查询,以及 B 向 Y 发出的所有查询?例如,假设 A 想通过 API 为某个模型运行“查找” - 我如何确保 A 将获得的唯一结果是可通过数据源 X 访问的结果?
【问题讨论】:
标签: loopbackjs
假设我有两个用户,A 和 B,ID 分别为 1 和 2。此外,假设我配置了两个数据源:X 和 Y。
对于某些给定的远程方法,如何隔离用户 A 向数据源 X 发出的所有查询,以及 B 向 Y 发出的所有查询?例如,假设 A 想通过 API 为某个模型运行“查找” - 我如何确保 A 将获得的唯一结果是可通过数据源 X 访问的结果?
【问题讨论】:
标签: loopbackjs
我不确定我是否完全理解您为什么要根据当前用户来决定数据源,但无论如何,我不确定您是否可以使用 LoopBack 来做到这一点……至少,不容易。 LoopBack 是一个模型驱动的框架——一切都源自模型。因此,所有 API 端点都通过一个模型(尽管您可以设置自定义路由)。每个模型都连接到一个数据源。
所以,如果我点击/api/Widget/13,则无法在两个数据源之间切换findById() 调用,它总是会点击模型连接到的任何数据源。
好的,说了这么多,我看到的解决方案是:
find 等。在任何一种情况下,它都不是直截了当的,也不是内置的。仅供参考,如果您需要获取数据源,您可以从 LoopBack 应用程序对象访问它:MyModel.app.datasources.ds1
【讨论】: