确保用户只能访问REST API中的THEIR记录

时间:2014-09-17 14:03:51

标签: mongodb rest express saas json-api

我目前正在为我的下一个Web应用程序在node.js和express.js上构建一个rest api。我正在构建一个多租户SAAS应用程序,我只是想知道根据REST API标准(如果还存在任何此类事情)的最佳或“最可接受”方式,以便在用户进行api调用时说:

/ API /用户

这不是拉动数据库中的每个用户(mongodb),而只是拉动特定用户公司成员。

我可以打电话给:api / users /?companyId = 1,但我不禁想到必须有更好的方法。也许通过公司ID将每个api调用作为某种标题?

对此的任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果您有唯一的身份识别名称或代码'对于每个公司,您可以拥有一个多租户API,公司代码作为网址的基础:

https://companycode.myapi.com/v1/users

您还可以针对不同的环境进行扩展:

https://companycode.staging.myapi.com/v1/users

答案 1 :(得分:0)

您可以强制用户对其帐户进行身份验证并将其与公司关联。通过请求管道中的中间件,您将在请求对象登录后为其提供对其用户帐户的访问权限,您可以使用它来过滤查询结果。

api.get('/v1/users', function(req, res) { 
  console.log(req.user); 
  //create a service that gets users for user(companyUser) 
  //mongooseModel.find({}).where(req.user._id.toString()
}