2013-08-27 54 views
4

我正在嘗試使用Firebase安全性和身份驗證配置,並注意到簡單登錄Web教程。我可以通過javascript控制檯運行auth.createUser()創建用戶,但想知道是否可以限制用戶創建完成服務器端。通過在firebase上簡單登錄創建用戶服務器端

我嘗試添加一個主機到Authorized Request Origins,並試圖刪除localhost和127.0.0.1(沒有成功),但仍然能夠從客戶端創建用戶。

理想情況下,我希望用戶只能從客戶端進行身份驗證。 我錯過了什麼嗎?

感謝

回答

3

簡單登錄被設計成無需服務器工作完全(假設這可以在不回落到FB,微博等整合來完成)。如果你想阻止客戶創建賬戶,你需要利用custom login並推出自己的賬戶。

但是,在大多數情況下,您可能不需要防止在簡單登錄中創建帳戶。您只需阻止用戶在Firebase中創建用戶記錄即可獲得相同的結果,並根據此編制security rules

例如,當在服務器上創建一個新的用戶帳戶,我可以創建用戶配置文件爲:

/user/$user_id/... 

我可以允許用戶寫入自己的個人資料,而不是創建一個配置文件,這個規則:

".write": "data.exists() && auth.uid === $user_id" 

然後,控制訪問服務器上的任何路徑,如下所示我可以寫一個規則:

".read": "root.child('user/'+auth.uid).exists()" 

由於只有服務器能夠首先創建配置文件,因此已經有效地阻止了用戶創建帳戶。

+0

感謝您的詳細回覆。快速提問:如何刪除用戶或進行密碼恢復? – Kartik

+0

可悲的是,還沒有辦法恢復密碼(還)。如果你想密碼恢復,你必須存儲/檢索/寫你自己的機制(現在)。使用上述模型,要刪除用戶,只需在Firebase中刪除其記錄(不能刪除其簡單登錄) – Kato

相關問題