2013-03-01 252 views

回答

41

有要執行(假設你有jQuery的)三個不同的步驟:設置你的回調

var ref = new Firebase("https://demo.firebaseio-demo.com"); 
var authClient = new FirebaseAuthClient(ref, function(error, user) { 
    if (error) { 
    alert(error); 
    return; 
    } 
    if (user) { 
    // User is already logged in. 
    doLogin(user); 
    } else { 
    // User is logged out. 
    showLoginBox(); 
    } 
}); 

2.用戶註冊

1。

function showLoginBox() { ... // Do whatever DOM operations you need to show the login/registration box. $("#registerButton").on("click", function() { var email = $("#email").val(); var password = $("#password").val(); authClient.createUser(email, password, function(error, user) { if (!error) { doLogin(user); } else { alert(error); } }); }); } 

3.用戶登錄

function showLoginBox() { 
    ... 
    // Do whatever DOM operations you need to show the login/registration box. 
    $("#loginButton").on("click", function() { 
    authClient.login("password", { 
     email: $("#email").val(), 
     password: $("#password").val(), 
     rememberMe: $("#rememberCheckbox").val() 
    }); 
    }); 
} 

當登錄成功完成後,您在步驟1中註冊的調用將正確的用戶對象調用,在這一點上,我們稱之爲doLogin(user)這是一種方法,你將不得不實施。

用戶數據的結構非常簡單。這是一個包含以下屬性的對象:

email:用戶的唯一數字(自動遞增)ID

FirebaseAuthClient會自動驗證您的firebsae你,而不是採取進一步行動:用戶 id的電子郵件地址是必須的。現在,您可以使用類似的安全規則如下:

{ 
    "rules": { 
    "users": { 
     "$userid": { 
     ".read": "auth.uid == $userid", 
     ".write": "auth.uid == $userid" 
     } 
    } 
    } 
} 

這意味着,如果我的用戶ID是42,只有我能寫或example.firebaseio-demo.com/users/42閱讀 - 當我在我的實際價格 - 並且沒有其他人。

請注意,簡單登錄不會存儲除用戶ID和電子郵件以外的其他用戶信息。如果要存儲有關用戶的其他數據,則必須自己執行此操作(可能在createUser的成功回調中)。您可以存儲這些數據,因爲您通常會將任何數據存儲在Firebase中 - 只需要注意誰可以讀取或寫入此數據!

+4

我創建了一個的jsfiddle在此基礎上在這裏:HTTP:// jsfiddle.net/dirkk0/LAJKX/ – dirkk0 2013-06-06 14:55:16

+2

有無論如何我們可以做電子郵件驗證,以防止用戶簡單使用假電子郵件? – vzhen 2013-12-05 06:19:01

+2

電子郵件驗證即將推出,請觀看Firebase郵寄名單以獲得公告! – Anant 2013-12-11 17:15:07

相關問題