javascript - Firebase 身份验证在重定向时不进行身份验证

标签 javascript html firebase firebase-authentication

在我的网站中,默认页面是 index.html。如果用户未连接,则将他重定向到登录页面。当用户登录后,程序应该将他重定向回 index.html 并显示该页面。但是,当我登录时(并且凭据正确),它会再次将我重定向到登录页面。

这是索引页面的代码:

var user = firebase.auth().currentUser;

if (!user){
    window.location = 'https://anastasispap.me/auth/login.html';
}

登录页面代码:

const loginForm = document.querySelector('#login-form');

loginForm.addEventListener('submit', (e) => {
    e.preventDefault();

    const email = loginForm['login-email'].value;
    const password = loginForm['login-password'].value;
    console.log(email, password)

    auth.signInWithEmailAndPassword(email, password).then(cred => {
        console.log(cred)
        loginForm.reset()
        window.location.assign("https://anastasispap.me/index.html")

    })
})

感谢您的宝贵时间:)

最佳答案

firebase.auth().currentUser 在页面加载时不会立即填充当前用户。您应该附上 AuthStateListener查明用户对象是否可用以及何时可用,如 documentation 中所述.

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});

关于javascript - Firebase 身份验证在重定向时不进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58883467/

相关文章:

javascript - 不以科学计数法显示的 JavaScript 数字可以有多小?

javascript - 正则表达式只允许文本框中的一个点

javascript - Chart.js — 绘制任意垂直线

html - 当内容较少时,页脚需要粘在底部

javascript - 无法在字符串上创建属性 'key'

javascript - Firebase JSON 数据组成数组

javascript - HTML 中的当前时间 (Javascript)

css - 如何使用可缩放的全尺寸背景图像制作 3 个 div

html - 如何使现有的 Flash 文件响应

ios - 使用 Firebase Swift 检索数据错误