为了账号安全,请及时绑定邮箱和手机立即绑定

Firebase 不保留身份验证状态

Firebase 不保留身份验证状态

动漫人物 2023-08-24 10:24:17
我想知道如何使用 firebase 保持身份验证状态。我正在做的是尝试设置持久状态,我这样做:login.addEventListener('click', function (e) {    e.preventDefault();    var email = emailInput.value;    var password = passwordInput.value;    firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)    .then(function() {        auth.signInWithEmailAndPassword(email, password)        .then(function (user) {         })        .catch(function (error) {                alert(error);        });    })});问题是,当我刷新网络应用程序时,会话似乎不会持续。它将用户重定向回登录屏幕,这根本不是所需的输出。所需的输出是保存用户的会话,并且用户能够浏览应用程序而不会出现被迫再次登录的问题。我正在关注 firebase 文档:https://firebase.google.com/docs/auth/web/auth-state-persistence
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

如果您想知道用户之前在新页面加载时是否登录过您的网站,您应该使用身份验证状态观察器来接收回调,该回调会在首次知道用户登录时通知您。它不会触发页面加载时立即 - SDK 需要一些时间来加载用户帐户并确定其是否有效。

firebase.auth().onAuthStateChanged((user) => {

  if (user) {

    // User is signed in, see docs for a list of available properties

    // https://firebase.google.com/docs/reference/js/firebase.User

    var uid = user.uid;

    // ...

  } else {

    // User is signed out

    // ...

  }

});

不要用于firebase.auth().currentUser确定用户之前是否已登录。页面加载时它最初始终为空。

查看完整回答
反对 回复 2023-08-24
  • 1 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信