我已经按照https://developers.google.com/上的指南操作,在用户登录后,我可以获得登录用户的Google ID令牌。但我注意到该令牌将在1小时后过期。我找不到任何官方参考,告诉我如何处理过期的Google ID令牌,所以我只能要求用户再次单击Google登录按钮。
如何在旧的Google ID令牌过期后刷新有效的Google ID令牌,而不打扰用户一次又一次地手动登录?
我已经按照https://developers.google.com/上的指南操作,在用户登录后,我可以获得登录用户的Google ID令牌。但我注意到该令牌将在1小时后过期。我找不到任何官方参考,告诉我如何处理过期的Google ID令牌,所以我只能要求用户再次单击Google登录按钮。
如何在旧的Google ID令牌过期后刷新有效的Google ID令牌,而不打扰用户一次又一次地手动登录?
2条答案
按热度按时间j8ag8udp1#
是的,Google ID令牌的有效期为一小时,并且会过期,您只需在应用中使用silentSignIn即可获得新令牌,无需任何用户交互。如果您现有的令牌尚未过期,您将获得(缓存)版本(返回的
OptionalPendingResult
将有isDone() == true
);如果它已经过期了,你会得到一个刷新的(但它会花更长的时间,因此OptionalPendingResult isDone()
将是false
)。下面是示例代码(UI线程,请参阅下面关于工作线程的注解):
字符串
记住你是在UI线程还是工作线程上调用
silentSignIn
。如果你在工作线程上调用它,看看这篇文章用blockingConnect()
+await()
简化了代码很多:静默登录用GoogleApiClient检索令牌2nbm6dog2#
我在Android应用程序中尝试使用Google Photos Java API沿着Google Sign In时遇到了这个问题。Here is the problem I was facing。我基本上通过定期获取
PhotosLibraryClient
的新示例来解决这个问题,该示例本身在此过程中获取新的GoogleAccountCredential
。但我确实必须小心在创建新的PhotosLibraryClient
之前正确拆除现有的PhotosLibraryClient
:字符串