获取Google个签名用户信息

Get Google signed user information

我有一个应用程序可以获取 Google 凭据,以便将用户注册到我的 API。我需要 Google 流程提供的 idToken

按照 this 教程,我可以登录了。

然后,我有一个闪屏。我希望它验证 Google 是否已允许用户转到主要 activity。如果没有,去登录activity.

但是根据教程的代码,它使用下面的代码询问 Firebase,这当然为我提供了一个 Firebase 令牌,而不是 Google 令牌。

override fun onStart() {
    super.onStart()
    val user = FirebaseAuth.getInstance().currentUser
    if (user != null) {
        startActivity(MainActivity.getLaunchIntent(this))
        finish()
    }
}

所以,问题是:如何获取 Google 信息来检索令牌,以便我的 API 可以验证令牌?

如果其他人需要实现类似的东西,我会分享我是如何实现的。 Google SDK 中有一个 silentSignIn 允许这样做。

所以,这是代码:

val signInOptions = getSignInOptions(this)
val googleSignInClient = GoogleSignIn.getClient(this, signInOptions)
googleSignInClient.silentSignIn().addOnCompleteListener {
    val account: GoogleSignInAccount? = it.result
    if (account != null) {
        // success
    }
    else {
        // failure
    }
}