Firebase 简单登录提供了电子邮件/密码选项,我该如何使用它?从创建用户开始,为该用户存储数据,再到登录和注销。
2 回答
需要执行三个不同的步骤(假设您有 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"
}
}
}
}
example.firebaseio-demo.com/users/42
这意味着,如果我的用户 ID 是 42,那么只有我可以在- 当我登录时 -写或读- 而没有其他人。
请注意,除了用户的 ID 和电子邮件之外,简单登录不会存储有关用户的任何其他信息。如果你想存储关于用户的额外数据,你必须自己做(可能在成功回调中createUser
)。您可以像通常在 Firebase 中存储任何数据一样存储这些数据 - 只需注意谁可以读取或写入这些数据!
以防有人访问此线程并寻找一些使用 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/