【问题标题】:Google OAuth 2.0 redirect_uri_mismatch error when trying to get access token尝试获取访问令牌时出现 Google OAuth 2.0 redirect_uri_mismatch 错误
【发布时间】:2017-10-06 04:06:43
【问题描述】:

我正在尝试交换身份验证代码以访问 OAuth2 上的令牌。

我使用 GET 请求向 google 发送了一个请求,我得到了一个代码。现在我正在尝试交换代码以访问令牌。

我使用这些参数向https://accounts.google.com/o/oauth2/token 发送了请求 使用 POST 请求

code=[Authentication code]
client_id=[Client ID]
client_secret=[Client Secret]
redirect_uri=urn:ietf:wg:oauth:2.0:oob
grant_type=authorization_code

但谷歌这样回应 400 错误

{ “错误”:“redirect_uri_mismatch” }

我在谷歌开发者控制台上创建了客户端 ID。我使用了“已安装的应用程序”类型。 我也试过: request_uri=@://localhost:8081 request_uri=@://localhost:8081/

(@表示http。我是在手机上编辑的,所以无法插入http的代码块) 但它没有用。

请求有什么问题?

【问题讨论】:

  • redirect_uri=urn:ietf:wg:oauth:2.0:oob - 该值应该代表什么?通常,您为该参数指定一个 HTTP(S) URL,在用户通过 OAuth 提供程序进行身份验证后,客户端将重定向回该参数……
  • 您将其作为 HTTP 帖子发送而不是 HTTP 获取正确吗? daimto.com/google-3-legged-oauth2-flow
  • 我也试过redirect_uri=localhost:8081。我请求使用 GET 谷歌服务器,我得到了一个代码,现在我正在尝试交换这个代码来访问令牌。此请求必须是 POST。

标签: oauth


【解决方案1】:

检查以下这两个步骤

  1. 用于检索授权码和访问令牌的重定向 uri 应该相同
  2. 使用您在创建应用程序时配置的相同重定向 uri,截图如下

【讨论】:

    猜你喜欢
    • 2020-07-29
    • 2015-09-04
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2015-12-08
    • 1970-01-01
    • 2014-02-09
    相关资源
    最近更新 更多