OAuth2 Playground - 令牌交换失败,DNS查找错误

时间:2016-03-24 05:20:46

标签: oauth2-playground

我正在测试我使用Playground编写的OAuth2服务器。 完整配置网址为here

步骤1(授权授权)完美运行。在Chrome中,我可以看到此请求:

GET https://localhost:8080/oauth2/api/authorize?scope=fp&redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&response_type=code&client_id=acme1&access_type=offline

步骤2(令牌交换)失败,并显示:

POST /oauth2/api/token HTTP/1.1
Host: localhost:8080
Content-length: 153
content-type: application/x-www-form-urlencoded
user-agent: google-oauth-playground
code=2l0vf6n&redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&client_id=acme1&client_secret=secret&scope=&grant_type=authorization_code
HTTP/1.1 400 Bad Request
Content-length: 115
Content-type: text/plain
An error occured while connecting to the server: DNS lookup failed for URL: https://localhost:8080/oauth2/api/token

看看网络我可以看到:

POST https://developers.google.com/oauthplayground/exchangeAuthCode

与这个机构:

{"token_uri":"https://localhost:8080/oauth2/api/token","client_id":"acme1","client_secret":"secret","code":"5kns7"}

这是它的工作方式吗? OAuth服务器交互,至少对于令牌交换, 是否在公共网络上?

如果步骤2可以针对本地服务器执行,那将非常有用。有谁知道我们如何才能实现这一目标?

感谢

1 个答案:

答案 0 :(得分:0)

OAuth 2.0 Playground在服务器端进行身份验证代码交换请求,因为OAuth服务器通常不允许对此请求发出CORS请求(至少对于auth代码流,他们不应允许CORS请求)。

您可以做的是将您的本地服务暴露给外部/互联网。为此,您可以使用ngroklocaltunnel等服务,并且您将获得本地服务的公开网址,您可以使用该网址设置Playground。