我正在尝试使用“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'选项应如何工作?
答案 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嗅出答案。