如何使用Firebase简单登录电子邮件&密码

时间:2013-03-01 22:33:36

标签: firebase firebase-security

Firebase简单登录提供email/password选项,如何使用它?从创建用户,存储该用户的数据到登录和注销数据开始。

2 个答案:

答案 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/