我有两个单独的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,但这没有任何改变。
非常感谢您的帮助!
答案 0 :(得分:0)
我很傻。我没有更改HTML中的登录对象(?)以匹配新的客户端ID。我不得不改变
<meta name="google-signin-client-id" content="CLIENT_ID">
更改为新的客户端ID。