2016-08-02 101 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 –