【问题标题】:Loopback API Explorer authenticationLoopback API Explorer 身份验证
【发布时间】:2016-08-11 23:48:17
【问题描述】:

我在 Loopback Node.js 中创建了一个新项目 我担心 API 是公开的。就像我将在服务器上部署项目时一样,可以轻松访问包含 API 的 URL。因此,我想限制任何人使用 API,并且应该在具有我的前端应用程序的 Android 设备上使用它。 我不理解已经创建的 User 模型,因为该模型没有任何特定文件,所以我正在创建自己的 userauth 模型,但同样担心在主服务器上部署时每个人都会访问它.

【问题讨论】:

标签: node.js loopback


【解决方案1】:

关于 API 端点公开,我会建议以下任一(我使用第二个):

1) 使用 ACL 限制对特定端点的使用 使用可以单独指定要限制访问的模型类中的 acl。

如果你想为每个模型实现一个通用的 acl,那么我建议你继承 Persisted Model,即创建 MyBaseModel,base 为“PersistedModel”。然后在所有模型中使用基本模型作为“MyBaseModel”

2) 使用中间件检查请求是否来自安卓应用

在您的 android 应用程序中,为您的服务器的每个请求设置一些标头,例如 httpConnection.setRequestProperty("MyCustomProperty", "ThisIsFromAndroidApp");

然后在您的 Loopback 服务器的 启动脚本 中创建一个中间件来检查:

module.exports = function(app){
    app.use(function(req, res, next){
      if(req.headers["MyCustomProperty"] === 'ThisIsFromAndroidApp'){
         return next();
      }
      res.json({err: "Unauthorised access to api endpoint"});
   });
}



现在对于内置的用户模型: 您可以在 node_modules\loopback\common\models\user.js

中找到他们的用户模型

Loopback 身份验证使用来自 access_token.js(AccessToken 模型)和 user.js(用户模型)的函数组合。您可以在

中找到这两种型号

node_modules\loopback\common\models\

【讨论】:

  • 完美@Jibin Thanx
猜你喜欢
  • 1970-01-01
  • 2016-09-07
  • 2017-08-16
  • 2019-08-31
  • 2020-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-12
相关资源
最近更新 更多