我在Loopback Node.js中创建了一个新项目 我关注API是公开的。当我在服务器上部署项目时,可以轻松访问包含API的URL。因此,我想限制任何人使用API,并且应该使用具有我的前端应用的Android设备。 我不了解已创建的用户模型,因为此模型没有任何特定文件,所以我创建了自己的userauth模型,但同样关注的是每个人在部署时都会访问它主服务器。
答案 0 :(得分:0)
关于API端点公开,我会建议以下任何一种(我使用第二个):
1)使用ACL限制对特定端点的使用 使用可以单独指定要限制访问的模型类中的acls。
如果你想为每个模型实现一个共同的acl,那么我建议你继承持久模型,即创建MyBaseModel,其基数为" PersistedModel"。然后在所有模型中使用基本模型作为" MyBaseModel"
2)使用中间件检查是否从Android应用程序发出请求
在你的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
环回身份验证使用来自 access_token.js (AccessToken模型)和 user.js (用户模型)的混合功能。您可以在
中找到这两个模型node_modules \回环\共同\模型\ 的