2016-08-02 102 views
3

我在Loopback Node.js中创建了一个新项目 我关心的API是公开的。就像我将在服务器上部署项目一样,包含API的URL将很容易被访问。因此,我想限制任何人使用API​​,并且应该使用具有我的前端应用程序的Android设备。 我不明白已经创建的用户模型,因为这个模型没有任何特定的文件,所以我创建了我自己的userauth模型,但是同样的担忧是,每个人在主要部署时都会访问它服务器。Loopback API Explorer身份验证

+1

我会强烈建议有一个看[身份验证,授权环回文档和权限(https://开头的文档.strongloop.com /显示/公共/ LB /验证%2C +授权%2C +和+权限)。这会给你一个开始的好地方,它也可能帮助你缩小你的问题。在目前的状态下,您的问题对我来说有点过于宽泛,无法提供一个很好的答案。 – Alex

回答

0

关于API终点越来越公开,我会建议以下两种(我用:第二个)的:

1)使用ACL限制使用特定端点 使用,可以指定的ACL的模型类单独您想要限制访问权限。

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

2)使用中间件,如果请求来自Android应用

取得在Android应用设置一些标题的每个请求到服务器,检查如

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"}); 
    }); 
} 

:在环回服务器的启动脚本创造出检查该中间件httpConnection.setRequestProperty("MyCustomProperty", "ThisIsFromAndroidApp");

然后
现在对于内置的用户模型: 您可以在node_modules \回环\ COMMON \型号这个自己用户模式\ user.js的

环回身份验证使用的功能,从混合access_token.js (AccessToken模型)和user.js(用户模型)。你可以找到这两种模式在

node_modules \回环\ COMMON \型号\

+0

完美@Jibin Thanx –