1

我的应用使用Firebase通过电话号码验证用户,从Digits迁移。 我将Firebase中的idToken添加到我的通话中。 我在httpclient上监听一个拦截器,如果是401,我会退出。捕获401并刷新Firebase Id令牌

我注意到一小时后401进来了,所以我在我的App类中添加了一个addIdTokenListener。当它更改时,我更新我的令牌以签署我的呼叫。 它的工作,但并非无懈可击,有时401被抛出,我仍然登录的用户了...

我写在我的拦截,从用户那里得到的IdToken的东西,但电话firebaseUser.getIdToken()是异步的。所以我开始让事情变得复杂。

任何人都可以指向正确的方向吗?你的工作流程是什么?

回答

2

你正朝着正确的方向前进。您可能想要做的一件事是基于ID令牌验证失败的原因稍微改变您的逻辑。您可以自己unpack the ID token data并检查到期字段。如果令牌已过期,请在再次尝试呼叫之前返回触发检索过程的其他代码。