如何知道Google凭据何时使用刷新令牌

时间:2017-07-30 00:18:54

标签: java google-api google-oauth2

所以我正在将google驱动器应用到我正在构建的应用程序中。此应用程序将在客户端计算机上运行。在用户进行身份验证后,我将在Google凭据中存储刷新和访问令牌。但是,为了防止用户每次进入应用程序时都必须进行身份验证,我计划在加密文件中存储访问令牌和刷新令牌。

我的问题是

每次更新令牌时,如何将监听器附加到Google凭据以便运行,以便我可以更新加密文件中的令牌。

我真的不想要一个单独的线程只是检查凭证是否已经改变,但如果这是最简单的方法我可以这样做。

感谢。

1 个答案:

答案 0 :(得分:0)

请查看数据存储的以下文档页面:Using OAuth 2.0 with the Google API Client Library for Java - Data store

  

大多数应用程序需要保留凭据的访问令牌和/或刷新令牌。要保留凭证的访问权限和/或刷新令牌,您可以使用StoredCredential提供自己的DataStoreFactory和DataStore实现;或者您可以使用库提供的以下实现之一:

     
      
  • JdoDataStoreFactory:使用JDO保留凭据。
  •   
  • AppEngineDataStoreFactory:使用Google App Engine数据存储API保留凭据。
  •   
  • MemoryDataStoreFactory:"持续存在"内存中的凭证,仅用作流程生命周期的短期存储。
  •   
  • FileDataStoreFactory:将凭证保存在文件中。
  •   
     

...

     

您可以使用DataStoreCredentialRefreshListener并使用GoogleCredential.Builder.addRefreshListener(CredentialRefreshListener)为凭证设置它。

使用FileDataStoreFactory将令牌存储到文件中可能会为您提供帮助。

它会将令牌存储到文件中,并在令牌发生变化时负责存储令牌。