firebase简单的电子邮件密码验证

时间:2013-03-31 02:56:49

标签: authentication firebase

我正在尝试使用“rememberMe”选项进行Firebase简单电子邮件/密码登录。但是我不能让它发挥作用而我真的不明白必须做些什么。

这是我使用的代码:

$('#btn-sign-in').click( function(e){
    var email = $('#login-user').val();
    var password = $('#login-password').val();

    authClient.login('password', {
        email: email,
        password: password,
        rememberMe: true
    });
});

'rememberMe'选项应如何工作?

2 个答案:

答案 0 :(得分:4)

[Firebase此处的工程师] Firebase Simple Login中的rememberMe选项将默认会话长度扩展为30天。这是自动发生的,并且在技术上通过生成会话令牌(并将其存储在用户的localStorage中)延长了一段时间来启用。

你能澄清一下你所看到的问题吗?请记住,为了使用此功能集,您必须在Forge中启用密码身份验证(可在https://YOUR-FIREBASE.firebaseIO.com访问),并在代码中使用回调实例化FirebaseAuthClient以监控用户的身份验证状态,如https://www.firebase.com/docs/security/simple-login-overview.html所述。

用户首次登录后,将使用new FirebaseAuthClient(function(error, user){..})和用户对象调用您传递给error=null的回调。刷新页面后,只要30天的会话仍处于活动状态,就会再次使用用户对象调用此回调。

答案 1 :(得分:1)

我遇到了上面的问题,kimbui是正确的,它与在Chrome中使用“file://”类型的网址直接相关。在这种情况下,localStorage对象不可用于写入,但是SILENTLY失败。因此,Firebase认为已经成功存储了会话信息,但在刷新时,它并不存在。如果您将代码部署到Apache localhost或任何其他适当的Web服务器,那么一切都运行良好。

不确定Firebase可以做些什么来嗅出这个问题并且可能会错误地输出到控制台,但非常感谢kimbui嗅出答案。