我在项目中使用Firebase,并使用getIdToken()方法返回令牌并验证用户身份。但是,由于令牌过期,应用程序中的用户会话始终会在1小时后过期,如何在用户会话过期后继续保存该用户会话?
我已经阅读了Firebase文档以及有关此问题的其他问题,似乎我必须使用刷新令牌在令牌到期后继续会话,但是我仍然不完全理解并且发现很难实现。例如,我从How to use the Firebase refreshToken to reauthenticate?和Firebase: When should I use refreshToken?中读取了答案,据我所知,这意味着当我们拨打电话时。getIdToken(true)Firebase已经管理了刷新令牌,因此我们不需要处理,对吗?
感谢您的帮助。
答案 0 :(得分:1)
用户登录始终保持不变,直到您手动调用平台的SDK提供的signOut方法为止。您无需执行任何操作即可使刷新令牌起作用-这也全部由SDK管理。
您需要做的是使用“身份验证状态侦听器”来确定刷新何时完成,因为它不是瞬时的。如果您不使用侦听器,而是直接访问“ currentUser”,则当前用户将显示为空,直到刷新成功。离线时刷新不会成功,也不会立即刷新。
由于您尚未说明正在使用的平台,因此我无法提供相关文档的链接,但是所有方案都相似。