所以我正在将google驱动器应用到我正在构建的应用程序中。此应用程序将在客户端计算机上运行。在用户进行身份验证后,我将在Google凭据中存储刷新和访问令牌。但是,为了防止用户每次进入应用程序时都必须进行身份验证,我计划在加密文件中存储访问令牌和刷新令牌。
我的问题是
每次更新令牌时,如何将监听器附加到Google凭据以便运行,以便我可以更新加密文件中的令牌。
我真的不想要一个单独的线程只是检查凭证是否已经改变,但如果这是最简单的方法我可以这样做。
感谢。
答案 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将令牌存储到文件中可能会为您提供帮助。
它会将令牌存储到文件中,并在令牌发生变化时负责存储令牌。