2

嗨,我一直在尝试制作一个使用 Biq Query API 的应用程序。

当我在本地加载应用程序时,OAuth2 的所有身份验证和客户端机密都可以正常工作,但是在部署代码后,我收到以下错误:

错误:redirect_uri_mismatch 请求详细信息

scope=https://www.googleapis.com/auth/bigquery
response_type=code
redirect_uri=https://terradata-test.appspot.com/oauth2callback
access_type=offline
state=https://terradata-test.appspot.com/
display=page
client_id=660103924069.apps.googleusercontent.com

但是查看我的 API 控制台,我发现重定向 uri https://terradata-test.appspot.com/oauth2callback在我的列表中或重定向 uri 的:

重定向 URI:

1.https://terradata-test.appspot.com/oauth2callback

2.http://terradata-test.appspot.com/oauth2callback

3.http://1.terradata-test.appspot.com/oauth2callback

4.https://code.google.com/oauthplayground

我不确定我缺少什么来解决这个问题?为什么 API 控制台中列出的 uri 会出现重定向错误?

该应用程序构建 OAuth2 装饰器以传递到 Biq 查询 API,如下所示:

CLIENT_SECRETS = os.path.join(os.path.dirname(__file__),
   'client_secrets.json')

decorator = oauth2decorator_from_clientsecrets(
    CLIENT_SECRETS,
    'https://www.googleapis.com/auth/bigquery')

http = httplib2.Http(memcache)   

bq = bqclient.BigQueryClient(http, decorator)

我应该放更多代码来澄清这种情况吗?任何投入将不胜感激。非常感谢!

4

2 回答 2

2

在标准 Web 服务器 OAuth 2.0 流程(授权码)中,有 3 个地方使用了 redirect_uri。它在所有三个地方都必须相同:

  1. 在 URL 中,您将用户重定向到,以便他们批准访问并获得授权码。
  2. 在 API 控制台中
  3. 在将授权代码交换为访问令牌(+ 可能是刷新令牌)时,在服务器到服务器的 HTTPS 帖子中
于 2012-10-20T23:46:43.220 回答
0

您必须使用https://console.cloud.google.com/apis/credentials上的后续步骤创建 API 凭据

客户端 Oauth Id Web 类型 JavaScript 授权 -> https://yourapp.appspot.com

URI 已授权 -> https://yourapp.appspot.com/oauth2callback

这是您在部署之前必须在本地应用程序中使用的凭据

于 2018-05-01T21:42:34.477 回答