如何从AuthResult获取Firebase idToken?

问题描述 投票:0回答:1

Firebase在回调上提供AuthResult,以供用户使用startActivityForSignInWithProvider登录(在我的情况下,提供程序在Android平台上为apple)。我似乎无法以适当的(同步)方式从其获取idToken。

到目前为止,我发现了两个选择,两个都不令人满意:

选项1:投放

((OAuthCredential)authResult.getCredential()).getIdToken()

这有效,但是我不确定这是否安全。 Plis,我在想,如果Firebase希望我们以这种方式获取idToken,他们会把它添加到AuthCredential中。

选项2:从用户那里获取它

authResult.getUser().getIdToken(false).addOnCompleteListener { ... }

这似乎是一个安全的解决方案,但这是一种异步方法。在用户手动登录后执行另一种异步方法似乎没有任何意义(这是我正在为现有用户执行的操作)。

android firebase-authentication apple-sign-in
1个回答
0
投票

您应该使用异步侦听器。原因是因为ID令牌每小时都会过期,并且您的监听者会在刷新令牌的那一刻就知道该令牌,因此您可以立即开始使用该新令牌。

© www.soinside.com 2019 - 2024. All rights reserved.