2016-03-24 16 views
0

Ich teste einen OAuth2-Server, den ich mit dem Playground geschrieben habe. Die vollständige Konfigurations-URL lautet here.OAuth2 Playground - Tokenaustausch schlägt mit DNS-Suchfehler fehl

Schritt 1 (Berechtigungserteilung) funktioniert einwandfrei. In Chrome kann ich diese Anfrage unter:

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 

Schritt 2 (Token-Austausch) schlägt mit:

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 

im Netzwerk sucht ich sehen kann:

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

mit diesem Körper:

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

Ist wie soll es funktionieren? Dass die Interaktionen des OAuth-Servers, zumindest für den Token-Austausch, in einem öffentlichen Netzwerk haben?

Es wäre immens nützlich, wenn Schritt 2 gegen einen lokalen Server ausgeführt werden könnte. Weiß jemand, wie wir das bitte erreichen können?

dank

Antwort

0

Die OAuth 2.0 Spielplatz der Auth-Code Austausch-Anforderungen auf der Server-Seite macht, weil typischerweise OAuth-Server sie nicht zulassen, dass CORS-Anfragen nicht CORS-Anfragen für diese Anforderung (zumindest für den Auth-Code Fluss ermöglichen sollten,).

Was Sie stattdessen tun können, ist Ihre lokalen Service nach außen/Internet offen legen. Dazu können Sie Dienste wie ngrok oder localtunnel verwenden und Sie erhalten eine öffentliche URL zu Ihrem lokalen Dienst, mit dem Sie den Playground einrichten können.