【发布时间】:2020-12-19 19:21:49
【问题描述】:
我已按照https://developers.google.com/identity/sign-in/android/sign-in 上的指南进行操作,在用户登录后我可以获取已登录用户的 Google ID 令牌。但令牌将在 1 小时后过期。
如何在旧的 Google ID 令牌过期后刷新有效的 Google ID 令牌,而无需用户一次又一次地手动登录?我尝试在令牌过期时使用静默登录。但这似乎不起作用。有没有办法获得有效的 Google ID 令牌?提前致谢!!
第一次登录,
private fun handleSignInResult(completedTask: Task<GoogleSignInAccount>) {
try {
val account = completedTask.getResult(ApiException::class.java)
val idToken = account!!.idToken
CheckDB(this, db).execute()
} catch (e: ApiException) {
Log.e("TAG","signInResult:failed code=" + e.statusCode)
}
}
令牌过期时,我使用静默登录
override fun onStart() {
super.onStart()
val account = GoogleSignIn.getLastSignedInAccount(this)
if(account!=null) {
sign_in_button.visibility = GONE
mGoogleSignInClient!!.silentSignIn().addOnCompleteListener(this, object : OnCompleteListener<GoogleSignInAccount>{
override fun onComplete(p0: Task<GoogleSignInAccount>) {
val account = p0.getResult(ApiException::class.java)
CheckDB(this@SignInActivity, db).execute()
}
})
}
}
【问题讨论】:
标签: android authentication kotlin single-sign-on google-signin