Google Cloud Endpoints Android客户端 - 验证错误

dya*_*cat 5 python google-app-engine android google-cloud-endpoints

我已经设置了一个带有云端点的Python应用引擎项目.我遇到了一个问题,当我在本地测试时,端点的auth会失败但是当我部署到app引擎时似乎工作正常.

这就是我所做的

  • 使用调试密钥库生成Android客户端ID
  • 生成Web客户端ID
  • 用allowed_clients_id = [API_EXPLORER_ID,ANDROID_CLIENT_ID,WEB_CLIENT_ID]和观众= [WEB_CLIENT_ID]装饰我的端点api
  • 在我的Android应用中,我创建了一个GoogleAccountCredential,其受众群体为"server:client_id:"+ WEB_CLIENT_ID

我已经部署了它,并且auth工作正常.当我在本地部署它时,auth可以在启用了OAuth的API资源管理器中正常工作.但是当我从我的Android应用程序拨打电话时,我会在日志中看到这个:

ERROR    2014-01-22 23:29:07,006 users_id_token.py:367] Token info endpoint returned status 400: Invalid Value
Run Code Online (Sandbox Code Playgroud)

我不确定我错过了什么.

小智 4

我刚刚修复了看起来相同的问题,这是由于本地没有安装 pycrypto 引起的。

尝试安装,例如使用 pip:

pip install pycrypto
Run Code Online (Sandbox Code Playgroud)

如果未安装 pycrypto,App Engine SDK 中的 users_id_token.py 模块似乎不会验证 id_token。然后,它尝试将 id_token 验证为 auth_token,但失败,导致您看到错误。