如何在 Loopback 中实现多租户

How To Implement Multi-Tenant In Loopback

我们正在为我们的 REST 端点使用 Loopback,并且需要实现多租户功能。我们所有的桌子都有 'tenantid'。我们有自己的用户模型,不使用 Loopback 用户模型。有没有办法捕获所有入站请求并即时验证或更新租户 ID?目标是确保所有 'get' 请求都附加了类似 'filter[where][tenantid]=tenantid' 的内容,并且所有面向保存的请求都正确填充了 'tenantid'。

解决方案是在 server.js 中使用 'parse' middleware 并即时修改所有请求的过滤器:

app.middleware('parse', parse)

function parse(req, res, next) {
    // Add an 'and' filter that specifies the tenant in all requests. 
    req.query.filter.where.and.push({ tenantid: 283 });
}