Firebase 不保留身份验证状态

我想知道如何使用 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


动漫人物
浏览 145回答 1
1回答

当年话下

如果您想知道用户之前在新页面加载时是否登录过您的网站,您应该使用身份验证状态观察器来接收回调,该回调会在首次知道用户登录时通知您。它不会触发页面加载时立即 - 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确定用户之前是否已登录。页面加载时它最初始终为空。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript