Google api Java 客户端:访问令牌过期

Google api Java client: access token expiration

我正在使用 Java sdk 获取服务器到服务器流中的用户和组数据,一切正常。

SDK 很好地隐藏了所有 OAuth 复杂性,request.execute() 方法进行第一次 HTTP 调用以获取 OAuth 令牌,第二次调用实际 API 以获取用户和组数据。

我对 SDK 如何处理对 OAuth 端点的调用有一些疑问

  1. request.execute() 方法是否总是调用 OAuth 端点?
  2. 如果不是,多久一次?
  3. 访问令牌"cached"是SDK的吗?
  4. SDK 是否正确管理令牌过期?

GoogleCredential "does the right things" 用于令牌刷新。

  1. 没有。它缓存令牌并重新使用它。
  2. 从服务器返回的令牌有过期时间。只要令牌没有过期,就可以重复使用。
  3. 是的,但仅限于内存中,除非使用类似 FileDataStoreFactory 的东西
  4. 是的。它缓存令牌直到它即将过期,并主动刷新它,通常在从服务器收到身份验证错误之前。