2014-10-02 68 views
0

我發現自己很困惑。我如何限制訪問我的Firebase,以便只有我 - 所有者可以訪問它

我的任務非常簡單,我想使用Firebase和node.js,這樣只有我能夠訪問基礎。

通常,服務提供了一種密鑰,只有所有者才能登錄到基地。

爲什麼不可能這樣?在我的情況下,我不需要對用戶進行任何身份驗證,所以我發現文檔非常混亂,因爲我不需要任何身份驗證,除非不允許其他人訪問基礎。

這不應該通過第三方提供商完成,應該允許直接從您的服務。

請幫忙。

+0

您是否嘗試禁用讀/寫訪問並僅使用服務器令牌? – webduvet 2014-10-02 06:51:23

+0

我在哪裏得到服務器toekn ???現在每個人都可以編寫一些node.js代碼並訪問我的基地。 – lobengula3rd 2014-10-02 08:02:33

+0

@ lobengula3rd你需要花一些時間[指南](https://www.firebase.com/docs/web/guide/);這是一個複雜的BaaS,你需要熟悉基本知識。這是[安全部分](https://www.firebase.com/docs/security/guide.html)。 – Kato 2014-10-02 16:53:36

回答

2

好的。所以我設法找到解決方案。

在您的帳戶你有,你應該更改爲標籤的安全規則:

{ 
    "rules": { 
     ".read": false, 
     ".write": false 
    } 
} 

現在轉到標籤的祕密,你會發現你的身份驗證密鑰。

在Node.js的代碼

現在做:

var dataRef = new Firebase("https://<YOUR-FIREBASE>.firebaseio.com/"); 
// Log me in. 
dataRef.auth(AUTH_TOKEN, function(error) { 
    if(error) { 
    console.log("Login Failed!", error); 
    } else { 
    console.log("Login Succeeded!"); 
    } 
}); 

這是混淆了我一點點,因爲他們都在談論用戶,但我沒想到我的自我(所有者)用戶訪問的基礎。

+2

對於Firebase,用戶是連接到數據的客戶端,因此應用程序和服務器進程的用戶之間沒有區別。雖然直接使用祕密作爲身份驗證方法起作用,但這意味着來自服務器的任何讀取或寫入都將繞過任何安全規則或驗證。最佳做法是使用我們的[令牌生成器庫]之一創建一次性令牌(https://www.firebase.com/docs/rest/guide/user-auth.html#section-rest-token-helper - 圖書館)與「服務器」類似的「uid」,以便您可以在您的安全規則中引用auth.uid ==='server'' – 2014-10-02 15:01:17

相關問題