2013-03-31 24 views
2

我正在尝试为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' 选项应该工作?

回答

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天的会话仍处于活动状态,此回调将再次与用户对象一起调用。

+0

感谢您的超级快速回答。 – kimbui

+0

感谢您的超级快速回答。 使用您的信息我做了更多的测试,看起来'rememberMe'选项的行为取决于浏览器: - Mac OSX/Safari 6.0.3:正常工作 - Mac OSX/Chrome 26.0.1410.43:认证回调是永远不会触发 - Mac OSX版/火狐19.0.2:正常工作 - 的Windows 7 /镀铬26.0.1410:验证调用回调,但用户是空 - 的Windows 7/Firefox的19:正常工作 现在,我将隐藏Chrome的“记住我”登录复选框,然后我将继续测试Firebase,这非常棒。 – kimbui

+0

@kimbui您不应该遇到任何这些问题,并且行为应该在现代浏览器中保持一致。请直接ping我,以便我们调查并解决问题(rob firebase.com)。 –

1

我遇到了上面的问题,kimbui是正确的,它直接关系到在Chrome中使用“file://”类型的URL。在这种情况下localStorage对象不可用于写入,但是SILENTLY失败。因此,Firebase认为已成功存储会话信息,但在刷新时不在此处。如果您将代码部署到Apache本地主机或任​​何其他适当的Web服务器,则一切正常。

不知道Firebase可以做些什么来嗅探这个问题,也许错误地告诉控制台,但是非常感谢kimbui嗅出答案。

相关问题