捕获401并刷新Firebase Id令牌

时间:2017-09-20 12:34:05

标签: android firebase firebase-authentication httpclient retrofit2

我的应用使用Firebase通过电话号码验证用户,从Digits迁移。 我将来自Firebase的idToken添加到我的调用中。

,如果已经播放了401,我会在我的httpclient上使用拦截器进行监听

我注意到一小时后401进来了,所以我在App类中添加了一个addIdTokenListener。当它改变时,我更新我的令牌以签署我的电话。 它工作,但不完美,有时401被抛出,我仍然记录用户...

我在拦截器中写了一些内容来从用户那里获取IdToken,但是调用firebaseUser.getIdToken()是异步的。所以我开始让事情变得复杂,我想。

有人能指出我正确的方向吗?你的工作流程是什么?

1 个答案:

答案 0 :(得分:2)

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