首页 > 解决方案 > Firebase auth/user-token-expired:抛出的错误在哪里?(JS)

问题描述

背景
我们正在通过后端的 firebase admin SDK 手动撤销我们的 firebase 刷新令牌。在我们的 Angular 应用程序中,我们使用 firebase.auth() 的 onAuthStateChanged 方法来确定用户是否经过身份验证。对于 onAuthStateChanged 的​​结果,我们使用方法 .getIdTokenResult() 来获取有关用户的一些元数据并将其存储在本地。

问题
从我们的后端撤销用户的刷新令牌后,我们等待客户端的 ID 令牌过期(一个小时)。在到期时间附近,我们注意到客户端控制台日志中抛出了未捕获的错误。我们理解这是正常的,因为我们刚刚撤销了刷新令牌,这是由于刷新。问题是我们无法弄清楚在哪里捕获这个异常以及它在哪里被抛出。我们在所有可疑调用(onAuthStateChanged、getIdTokenResult)周围放置了 .catches() 、 try/catch 并提供了错误回调,但我们似乎仍然遇到了异常。

是否有自动尝试刷新令牌的内部进程?如果是这样,我们如何去捕捉这个错误?

我们认为它是内部的,因为堆栈跟踪很难跟踪,导致我们无处可去。

错误详情:

code: auth/user-token-expired
message: The user's credential is no longer valid. The user must sign in again.

这是无意义的堆栈跟踪 这是无意义的堆栈跟踪

标签: javascriptfirebasefirebase-authenticationangularfire

解决方案


推荐阅读