【发布时间】:2017-04-29 03:50:53
【问题描述】:
当我在登录后立即刷新网页时,以下代码会生成一个空用户。此外,当访问令牌过期时,该页面会自动注销。我该如何解决这个问题?
function initApp() {
firebase.auth().onAuthStateChanged(function(user) {
console.log("user in onAuthStateChanged:");
console.log(user);
userGlobal = user;
if (user) {
$("#logindiv").hide();
$("#userWelcome").text("Welcome, " + user.email);
$("#logOut").click(function(){
firebase.auth().signOut().then(function() {
$("#logindiv").show();
$("#testdiv").hide();
}, function(error) {
alert(error);
})
});
$("#testdiv").show();
visiProgcontroller.init(function() {
visiProgcontroller.makeUIactions();
})
}
else {
$("#loginButton").click(toggleSignIn);
$("#logindiv").show();
$("#testdiv").hide();
}
})
}
window.onload = function() {
initApp();
};
编辑:可能的原因是由于以下代码。当我将其注释掉时, onAuthStateChanged 返回非空用户。我一放回去,用户就为空。关于为什么这会阻止/使用户为空的任何有根据的猜测?
visiProgcontroller.init(function() {
visiProgcontroller.makeUIactions();
});
解决方案
发现错误。我正在做一个 localStorage.clear(),我认为 firebase 以某种方式使用这个本地存储来验证访问令牌。
【问题讨论】:
标签: javascript firebase firebase-authentication