环回 API Explorer 身份验证

Loopback API Explorer authentication

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

关于 API 端点获得 public,我会建议以下之一(我使用第二个):

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

如果您想对每个模型实施通用 acl,那么我建议您继承 Persisted 模型,即创建 MyBaseModel,其基数为 "PersistedModel"。然后在所有模型中使用基本模型作为 "MyBaseModel"

2) 使用中间件检查请求是否来自 android app

在您的 android 应用中,为您服务器的每个请求设置一些 header,例如 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

中找到他们的用户模型

环回身份验证混合使用了 access_token.js(AccessToken 模型)和 user.js(用户模型)。您可以在

中找到这两种型号

node_modules\loopback\common\models\