Firebase简单登录提供email/password选项,如何使用它?从创建用户,存储该用户的数据到登录和注销数据开始。
答案 0 :(得分:41)
要执行三个不同的步骤(假设你有jQuery):
<强> 1。设置回调
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。用户注册
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
:用户的唯一数字(自动递增)ID
FirebaseAuthClient会自动为您的firebsae验证,无需采取进一步措施。您现在可以在安全规则中使用以下内容:
{
"rules": {
"users": {
"$userid": {
".read": "auth.uid == $userid",
".write": "auth.uid == $userid"
}
}
}
}
这意味着,如果我的用户ID是42,那么只有我可以在example.firebaseio-demo.com/users/42
处写或读 - 当我登录时 - 并且没有其他人。
请注意,简单登录不会存储除用户ID和电子邮件之外的任何其他信息。如果要存储有关用户的其他数据,则必须自己进行(可能在createUser
的成功回调中)。您可以按照通常在Firebase中存储任何数据的方式存储此数据 - 只需注意谁可以读取或写入此数据!
答案 1 :(得分:4)
只是让某人到达此线程并使用firebase身份验证查找一些示例应用程序。这是两个例子
var rootRef = new Firebase('https://docs-sandbox.firebaseio.com/web/uauth');
......
.....
....
http://jsfiddle.net/firebase/a221m6pb/embedded/result,js/
http://www.42id.com/articles/firebase-authentication-and-angular-js/