我一直在遵循基本的 OAuth 2.0教程来创建 OAuth 2.0 服务器。整个部分运行良好,但是当我尝试在此页面之后的 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 有任何经验并且可以帮助我找出问题出在哪里,我将非常感激。另外,我为这个冗长的问题道歉,但我想尽可能多地提供信息。