Oauth2客户端ID与错误的项目匹配

时间:2018-08-02 19:37:16

标签: python-3.x google-app-engine google-cloud-platform google-oauth

我有两个单独的Google App Engine项目(分别称为项目A和B),我正在使用Oauth2对其进行验证。对于每个项目,我都生成了自己的Oauth 2.0客户端ID。

因此对于项目B,尝试验证我的Oauth2令牌会产生值错误。据我所知,由于某种原因,它期望来自项目A的ClientID。使用项目A的Client ID实际上使一切正常工作,这似乎很奇怪。

我正在为此项目使用Python3.5,并尝试使用Flask部署网页,如果有帮助的话。

错误代码:(已编辑的键)

Token has wrong audience <Client ID A>, expected <Client ID B>

验证令牌的代码:

from google.oauth2 import id_token
from google.auth.transport import requests as goog_requests
from flask import Flask, render_template, request
...
# Verify and get info for the user's ID token.
# This is where the error gets thrown
idinfo = id_token.verify_oauth2_token(
    request.headers.get('X-id-token'),
    goog_requests.Request(),
    CLIENT_ID
)

其他信息-正如我期望的那样,使用该错误代码,登录的UI指示我也试图登录到项目A。我也想知道这是否与我的Google sdk cli配置有关。我尝试将默认项目重置为项目B,但这没有任何改变。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我很傻。我没有更改HTML中的登录对象(?)以匹配新的客户端ID。我不得不改变

<meta name="google-signin-client-id" content="CLIENT_ID">

更改为新的客户端ID。