2016-03-24 2 views
0

Я тестирую сервер OAuth2, который я написал с помощью игровой площадки. Полный URL-адрес конфигурации: here.OAuth2 Playground - обмен токена с ошибкой поиска DNS

Шаг 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"} 

Is это как он должен работать? Что взаимодействия OAuth-сервера, по крайней мере для обмена токенами, имеет, чтобы быть в общедоступной сети?

Было бы очень полезно, если шаг 2 может выполняться на локальном сервере. Кто-нибудь знает, как мы можем это достичь, пожалуйста?

благодаря

ответ

0

OAuth 2.0 площадки делает запросы обмена аутентификации коды на стороне сервера, так как обычно OAuth сервера не позволяют CORS запросов по этому запросу (по крайней мере, для потока аутентификации коды они не должны позволять CORS запросов).

Что вы можете сделать, это разоблачить местную службу на улице/в Интернете. Для этого вы можете использовать такие сервисы, как ngrok или localtunnel, и вы получите общедоступный URL-адрес своей локальной службы, с которой вы сможете настроить Playground.

Смежные вопросы