我正在尝试交换身份验证代码以访问 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
(wth#?!)
(感谢https://stackoverflow.com/a/25163080/274720)