2

我正在尝试使用“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”选项应该如何工作?

4

2 回答 2

4

[此处为 Firebase 工程师] rememberMeFirebase 简单登录中的选项将默认会话长度延长至 30 天。这会自动发生,并且在技术上通过生成会话令牌(并将它们存储在用户的本地存储中)延长一段时间来启用。

你能澄清你看到的问题吗?请记住,要使用此功能集,您必须在 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 天的会话仍处于活动状态,就会再次使用用户对象调用此回调。

于 2013-03-31T04:32:04.720 回答
1

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

不确定 Firebase 是否可以采取任何措施来发现这个问题,并且可能会向控制台发出错误,但非常感谢 kimbui 发现了答案。

于 2013-07-26T01:32:54.723 回答