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