具有Firebase身份验证功能的Ionic3应用程序会在24小时后自动将用户注销(登录不会持续)



我已经推出了一些使用ionic3和firebase javascript angularfire2身份验证的商业Android和iOS应用程序。我开始收到用户投诉,称用户必须在一段时间后重新登录。一段时间后(感觉就像在应用程序中处于> 24 小时的不活动状态),用户将注销。大多数投诉都与IOS应用程序有关,而其他一些iOS用户已经报告了数周多的不活动状态,并且仍然需要在同一应用程序中登录。这些用例似乎是随机的,也许它们是随机的,我将它们添加到这里只是为了完整。

我使用的代码非常简单,并且根据文档。

this.afAuth.auth.setPersistence('LOCAL'); 
this.afAuth.authState.subscribe(
(user) => {
if (!user) {
//Logout
this.logout.next({});
}
else {
//Login
this.authenticated.next(user);
}
}
);

注销和认证是主题。

我为解决它所做的事情:

  • 将持久状态设置为本地。尽管火力基地现在表明这不再是必需的。Firebase 项目中不再有任何选项可以指定会话时长。
  • 将所有内容更新到最新版本。
  • 根据最新的 Firebase 文档,手动刷新或存储令牌是不必要的。

我仍然可以尝试的事情:

  • 后台刷新插件是否应该帮助不让会话令牌过期?(即使Firebase声称它不会过期)?
  • 从 Firebase 导入 * 和 AngularFire2 之间是否存在冲突?

离子 3.9.2 火力基地 4.10.1 棱角火2 5.0.0-RC.6

还有其他人在持久登录方面遇到问题吗?或者提示如何解决这个问题?

更新: 这只会影响用户接近空间限制的 IOS,请参阅下面的备注。

对于科尔多瓦应用程序的 iOS 设备中,localStorage不可靠(在内存不足时清除)存在问题。 切换到 Firebase 版本4.13.0,该版本现在使用indexedDB来存储身份验证状态。这更可靠,在这种情况下应该持续存在。

相关内容

  • 没有找到相关文章

最新更新