Validation 正在验证通过第三方后端(自定义python后端,非gae)上的Google Identity Toolkit(GitkitClient)在Android设备上获得的OAuth2令牌?

Validation 正在验证通过第三方后端(自定义python后端,非gae)上的Google Identity Toolkit(GitkitClient)在Android设备上获得的OAuth2令牌?,validation,oauth-2.0,backend,google-identity-toolkit,Validation,Oauth 2.0,Backend,Google Identity Toolkit,如何验证通过第三方后端(自定义python后端,非gae)上的Google Identity Toolkit(GitkitClient)在Android设备上获得的OAuth2令牌 我可以通过使用GitkitClient在Android上获得令牌 但是,我的非谷歌应用程序引擎(Python)后端如何验证该令牌是否有效(来自谷歌)?您可以使用谷歌标识工具包Python客户端库验证该令牌: 非常感谢你!我没有意识到它和javascript库存储在cookies中的东西是一样的;这真漂亮。奇怪的是,我

如何验证通过第三方后端(自定义python后端,非gae)上的Google Identity Toolkit(GitkitClient)在Android设备上获得的OAuth2令牌

我可以通过使用GitkitClient在Android上获得令牌


但是,我的非谷歌应用程序引擎(Python)后端如何验证该令牌是否有效(来自谷歌)?

您可以使用谷歌标识工具包Python客户端库验证该令牌:


非常感谢你!我没有意识到它和javascript库存储在cookies中的东西是一样的;这真漂亮。奇怪的是,我试图使用Python的
oauth2client
来验证它,但我从未成功地让它工作(
AppIdentityError:Invalid token signature
长达数小时)。你知道为什么那个图书馆不能使用代币吗?不客气!oauth2client能够验证Google OAuth2 IdToken。但是,Google Identity Toolkit使用它自己的私钥(与Google Oauth2令牌不同)来生成从GitkitClient获得的令牌。
p12_file = 'YOUR_SERVICE_ACCOUNT_PRIVATE_KEY_FILE.p12'
f = file(p12_file, 'rb')
key = f.read()
f.close()
gitkit_instance = gitkitclient.GitkitClient(
  client_id='YOUR_WEB_APPLICATION_CLIENT_ID_AT_GOOGLE_DEVELOPER_CONSOLE',
  service_account_email='YOUR_SERVICE_ACCOUNT_EMAIL@developer.gserviceaccount.com',
  service_account_key=key,
  widget_url='URL_ON_YOUR_SERVER_TO_HOST_GITKIT_WIDGET')

user = gitkit_instance.VerifyGitkitToken(request.COOKIES['gtoken'])