- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我登录后立即刷新网页时,以下代码会生成一个空用户。此外,当访问 token 过期时,页面会自动注销。如何解决这个问题?
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 以某种方式使用此本地存储来验证访问 token 。
最佳答案
正如您在最近的编辑中所说,您的错误是在您触发 localStorage.clear()
后发现的。有关这如何以不同方式影响您的应用程序的更多信息,您可能需要 look at this article .
很高兴您能正常工作!
关于javascript - onAuthStateChanged 刷新后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41132048/
当用户访问我的站点时,我使用 onAuthStateChanged确定用户是否已经从先前的 session 中登录。 主要问题是它对于一小部分用户来说是不一致的 - 代码似乎没有检测到他们确实有一个有
这个问题在这里已经有了答案: Firebase stop listening onAuthStateChanged (2 个答案) 关闭 6 年前。 以前我在 firebase.auth.curre
我正在尝试制作一个跟踪用户身份验证状态的模块。目前看起来像这样: import FbApp from './firebase-app'; var AuthStatus = { LoggedIn
当我登录后立即刷新网页时,以下代码会生成一个空用户。此外,当访问 token 过期时,页面会自动注销。如何解决这个问题? function initApp() { firebase.auth(
我一直在为 React Native 应用程序使用 Firebase 匿名身份验证,主要是为了确保用户只能读/写他们自己的数据(例如检查安全规则中的 auth && auth.uid) 以前,使用 F
在我的flutter应用程序中,我尝试使用Provider包中的ChangeNotifier将Firebase用户对象传递给降序的小部件。我的第一个想法是在StreamBuilder中执行以下操作:
我正在使用Firebase身份验证和Firestore数据库创建一个flutter应用程序,以存储用户个人资料。 验证用户身份后,我想将用户的个人资料文档作为流获取,并提供给所有小部件使用。 这是我的
我希望在我的应用中的用户状态发生变化时收到通知。我的意思是,当它刚刚登录和刚刚注销时。我不想在刷新用户 token 或每次应用程序启动并且用户自动登录时收到通知。 我正在使用预期的处理程序: Fire
我有这段代码可以检查用户是否已经在 Firebase 中登录,如果是,则使用 Redux 分派(dispatch)操作并将状态更新为当前授权用户。 /** * check to see if the
我是 Firebase 的新手。我正在尝试使用 React + Redux 登录。当我点击“登录”时,它将让我登录一次,然后再次调用 onAuthStateChanged 并且 res 为空,这让我退
我完全知道 onAuthStateChange 函数在注册后立即触发,但事实并非如此。在用户使用用户名和密码登录后,我遇到此功能触发两次的问题。第一次启动时,我追溯到堆栈,它来 self 的代码,但第
我在 login.html 中使用 Firebase 基于密码的身份验证。我有 2 个文本框和 3 个按钮。 我使用 firebase.OnAuthStateChanged 来了解用户是否登录或注销。
从版本 ^3.0.0 开始,我很难删除身份验证状态更改监听器。 根据文档启动监听器: firebase.auth().onAuthStateChanged(function (user) {
首次安装时,应用程序运行没有任何问题。 在启动画面检查登录状态。 用户未登录,导航到登录屏幕。 但 unsubscribe() 不是函数 当应用程序最小化然后重新打开时,错误显示并停留在启动画面。这只
当我将鼠标悬停在 onAuthStateChanged 上时,它会显示: (method) firebase.auth.Auth.onAuthStateChanged(nextOrObserver:
所以我在关注一个关于创建谷歌登录的教程。他说你需要使用 onAuthStateChanged收听登录/退出。我不明白的部分是他说该方法就像“开放订阅”,我们需要“关闭订阅”以防止内存泄漏。 所以在你看
在放弃运行 Express 的自己的 NodeJS 后端后,我们一直在应用程序上使用 Firebase,在此过渡期间,我们注意到一个主要缺点。客户端接收初始身份验证状态所需的时间。 当我的应用程序打开
我正在使用 firebase 创建一个应用程序。加载任何页面时,我都会通过以下代码检查身份验证。当我从登陆页面调用 isAuthenticated 时,即使用户已经登录并且持久性是 LOCAL( ht
我按照 Stack Overflow - How to redirect after a user signs in with Firebase authentication? 的说明进行操作 ind
目前我有一个授权系统来使用 angularfire 跟踪用户登录/注销状态。我正在查看的指南建议在每个 Controller 中使用 $onAuthStateChanged 。 $rootScope.
我是一名优秀的程序员,十分优秀!