android 如何在1小时内过期后获得有效的Google ID令牌

68bkxrlz  于 12个月前  发布在  Android
关注(0)|答案(2)|浏览(106)

我已经按照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()
            }
        })
    }
}

wfveoks0

wfveoks01#

当您的用户登录时(第一次也是唯一一次),使用获得的令牌向您自己的后端服务器进行身份验证。无需在Google的重新登录。详情请点击:https://developers.google.com/identity/sign-in/android/backend-auth

tvmytwxo

tvmytwxo2#

默认情况下,访问令牌的有效期为1小时,这似乎足以授权检索登录用户的数据。一旦令牌通过后端服务器的验证,必须在后端为用户建立会话。用户登录后每次进入应用程序时,没有必要重复获取访问令牌。访问令牌的主要目的是token用于验证用户与Google服务器之间的关系。

相关问题