应用离线时如何绕过 Firebase 身份验证?
Posted
技术标签:
【中文标题】应用离线时如何绕过 Firebase 身份验证?【英文标题】:How to bypass Firebase authentication when app is offline? 【发布时间】:2021-02-03 06:35:58 【问题描述】:我有以下场景:由 AWS 上的 Spring Boot 应用程序支持的 Flutter 应用程序。用户第一次尝试登录时,他们会通过 Spring Security 使用 OAuth2 进行身份验证,并获得一个 JWT 令牌,该令牌保存在应用程序的内存中以供将来交互。
除了第一个令牌之外,还有一个使用 Firebase 私钥签名的辅助 Firebase 令牌,用于与 Firestore 数据库的所有交互。
Firebase 连接得到了很好的处理,包括在 Internet 连接中断期间,但是每当用户尝试(首次或重新)打开应用并且 Internet 连接不可用时,它就会在 Firebase 登录期间挂起。
有没有办法绕过这个? 我知道他们无法在没有 Internet 连接的情况下进行身份验证,但我希望允许用户在离线时访问他们的 Firestore 本地缓存。
【问题讨论】:
【参考方案1】:您可以启用离线持久化,在网页中默认禁用:
firebase.firestore().enablePersistence()
.catch(function(err)
if (err.code == 'failed-precondition')
// Multiple tabs open, persistence can only be enabled
// in one tab at a a time.
// ...
else if (err.code == 'unimplemented')
// The current browser does not support all of the
// features required to enable persistence
// ...
);
您可以了解更多here
【讨论】:
我意识到在android上默认启用离线持久化。在您共享的链接@Code Eagle 中,我想不出任何绕过身份验证的方法 我认为身份验证总是需要一个活动连接,无论如何你的应用程序在离线时仍然可以工作,直到恢复互联网活动然后再次获取刷新令牌,我认为你所能做的就是延长到期日期刷新令牌@Jaumzera,以上是关于应用离线时如何绕过 Firebase 身份验证?的主要内容,如果未能解决你的问题,请参考以下文章
离线时无法在颤振应用程序中使用signInWithEmailAndPassword
Firebase 离线支持:在用户离线时上传帖子,当用户在 iOS Swift 应用程序中在线时同步