【发布时间】:2014-12-05 22:35:19
【问题描述】:
我一直在关注基本的 OAuth 2.0 tutorial 来创建 OAuth 2.0 服务器。整个部分运行良好,但是当我尝试在 this 页面之后的 Google OAuth2 操场上使用它时,我遇到了一些错误。
除了我使用http://localhost/wordpress/authorize.php?state=xyz作为我的授权端点之外,我已经按照上面链接中的所有步骤进行操作,否则我会收到一个错误,指出需要状态并且我还不想编辑任何代码.
现在,授权 API 似乎一切正常。我被定向到我的本地主机站点,当我授权请求时,我将返回到 OAuth2 Playground。当我继续下一步并尝试将返回的授权代码交换为令牌时,我收到 400 错误。
整个请求/响应如下:
POST /wordpress/token.php HTTP/1.1
Host: localhost
Content-length: 191
content-type: application/x-www-form-urlencoded
user-agent: google-oauth-playground
code=6d408c28d468db6586320bff3aacf16492489b67&redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&client_id=newclient&scope=& client_secret=newpass&grant_type=authorization_code
______________________________________________________________________
HTTP/1.1 400 Bad Request
Content-length: 106
Content-type: text/plain
An error occured while connecting to the server: Unable to fetch URL: http://localhost/wordpress/token.php
这可能是我自己犯的一个简单错误,但我似乎无法弄清楚。我不认为代码真的是个问题,因为当我在教程页面上进行测试时,一切正常。我也没有编辑示例使用的库中的任何文件。如果需要,我可以编辑此帖子以包含代码以符合链接可能变为非活动状态的规则。
我注意到关于请求的一点是&scope=&client_secret=newpass&grant_type=authorization_code。看起来没有设置范围参数,我在想这可能会弄乱结果。
如果有人对 OAuth 或 OAuth2 Playground 有任何经验并能帮助我找出问题所在,我将不胜感激。另外,对于这个冗长的问题,我深表歉意,但我想尽可能多地提供信息。
【问题讨论】: