Google OAuth 2.0尝试获取访问令牌时出现redirect_uri_mismatch错误

问题描述:

我尝试使用交换身份验证代码访问OAuth2上的令牌。Google OAuth 2.0尝试获取访问令牌时出现redirect_uri_mismatch错误

我使用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 

但谷歌responsed这样与400错误

{ “错误”: “redirect_uri_mismatch” }

我在Google开发者控制台上创建了客户端ID。我使用类型'已安装的应用程序'。 我也试过: REQUEST_URI = @://本地主机:8081 REQUEST_URI = @://本地主机:8081/

(@意味着HTTP我编辑我的手机上,所以我不能插入的代码块。 http) 但它没有奏效。

请求有什么问题?

+0

'redirect_uri = urn:ietf:wg:oauth:2.0:oob' - 这个值应该表示什么?通常,您为该参数指定一个HTTP(S)URL,客户端在用户通过OAuth提供程序进行身份验证后被重定向回 – CBroe 2014-09-10 14:01:22

+0

您正在将它作为HTTP发送,而不是HTTP发送正确? http://www.daimto.com/google-3-legged-oauth2-flow/ – DaImTo 2014-09-10 14:12:31

+0

我也试过redirect_uri = http:// localhost:8081 /。我要求谷歌服务器与GET和我有一个代码,现在我试图交换此代码访问令牌。此请求必须是POST。 – Gippeumi 2014-09-10 23:35:25

检查这两个步骤如下

  1. 重定向的URI来获取授权码和访问令牌应该是相同的
  2. 使用您在创建应用程序配置的相同的重定向URI,下面的截图

enter image description here