OAuth2 Python API客户端对GAE的最佳实践

时间:2015-05-22 18:52:16

标签: python google-app-engine google-api-python-client google-oauth2

我使用GAE环境中AppAssertionCredentials类提供的两条腿OAuth2流程。

...
credentials = AppAssertionCredentials(scope=API_AUTH_SCOPES)
http = credentials.authorize(httplib2.Http(memcache))
drive_service = build("drive", "v2", http=http)
...

上面的代码放在我的Python app类的开头。它现在工作正常...但我发现,对于每个http请求,我的应用都会尝试刷新OAuth2令牌。

我的问题是:可以吗?我应该关心令牌过期/验证还是OAuth2 API使用限制? Shoud我将凭证存储在存储机制中并将其重新用于下一个请求吗?

AppAssertionCredentials class docs

  

此凭据不需要流实例化,因为它代表   两条腿的流量,因此具有所有必需的信息   生成并刷新自己的访问令牌。

_refresh(self, http_request) doc说

  

由于底层App Engine app_identity实现了它   自己的缓存,我们可以跳过所有的存储箍,只是为了刷新   使用

我对GAE上服务帐户OAuth流程的正确使用感到困惑。

我感谢任何有关此主题的建议。

更新 声明:" 我观察到,对于每个http请求,我的应用都会尝试刷新OAuth2令牌。" 在GAE上使用AppAssertionCredentials时不正确!仔细观察日志我看到token refresh只执行一次。在GAE上使用AppAssertionCredentials时,GAE会在幕后处理OAuth2握手。

0 个答案:

没有答案