2016-03-24 61 views
0

我正在測試使用Playground編寫的OAuth2服務器。 完整配置網址是hereOAuth2 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 

尋找在網絡I可以看出:

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步可以在本地服務器上執行,這將非常有用。有誰知道我們可以如何做到這一點?

感謝

回答

0

的OAuth 2.0用戶遊樂場使得在服務器端的授權碼交換請求,因爲通常OAuth服務器不允許該請求(至少在授權碼流,他們不應該讓CORS請求CORS請求)。

你可以做的是將你的本地服務暴露給外部/互聯網。爲此,您可以使用服務,如ngroklocaltunnel,您將獲得一個公開的URL到您的本地服務,您將能夠設置Playground。

相關問題