获取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
}
}
我有一个应用程序可以获取 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
}
}