2

是否有可能增加令牌生命時間或在沒有用戶交互的情況下更新令牌?GoogleSignInApi的Google令牌生存時間

GoogleSignInResult result 
GoogleSignInAccount acct = result.getSignInAccount(); 
      email = acct.getEmail(); 
      idToken = acct.getIdToken(); 

給我一個令牌,其生命期爲1小時。 什麼是強制更新令牌的最佳方式?

回答

3

是的,現在,Google發佈1小時的ID令牌。如果您想將ID標記用作會話管理的標識聲明,那麼您可以簡單地使用silentSignIn(Javadoc),該標記不涉及任何用戶交互。如果您的舊標記尚未過期,您將返回(緩存)的版本(OptionalPendingResult返回將具有isDone()== true);如果它已經過期,你會得到一個刷新的(但它會花一點時間,因此OptionalPendingResult isDone()將是假的)。

此外,取決於您是否在UI線程或工作線程上調用silentSignIn。如果您在工作線程上調用它,請使用blockingConnect()+ await()來查看此文章,這可以簡化代碼: Silent sign in to retrieve token with GoogleApiClient