2015-05-22 243 views
1

我有一個基於Laravel 5/Socialite構建的PHP Web應用程序,我嘗試使用Windows Azure AD OAuth流實現SSO解決方案,但我得到通用「400錯誤請求錯誤」在訪問令牌的第二個OAuth請求上。
辦公室第一次請求授權URL成功,並將授權碼返回給我的應用程序,但是當我嘗試獲取用戶訪問令牌時,它失敗。Azure AD OAuth訪問令牌請求::: 400 - 錯誤的請求

我已經檢查和複查我的要求,它似乎正確的,就像我可以告訴:

POST https://login.windows.net/common/oauth2/token 

HEADERS

Host:login.windows.net 
Content-type:application/x-www-form-urlencoded 
User-Agent: wTrack/.001 
Date: Thu, 21 May 2015 02:48:43 GMT 

BODY

client_id=1ad9f025-dfaf-4cb7-a9ff-29ea619bab44& 
client_secret=<secret>& 
code=<code>& 
redirect_uri=https%3A%2F%2Fwtrack.dev%2Flogin%2Fmicrosoft& 
grant_type=authorization_code 

我一直在尋找這已經有一段時間了。任何可以提供的幫助將不勝感激。

+0

作爲一個規則與狀態400響應包含JSON與解釋性消息。如果它存在,您可以檢查併發布它嗎? – Igor

+0

謝謝你的建議@Igor。一旦我知道JSON信息在那裏,我挖到,直到我找到它:)原來,我得到的錯誤,因爲我沒有在POST請求的主體中包含'resource'參數。 –

回答

2

確保您的redirect_uri與您用於授權代碼請求的相同。另外,您可以嘗試在請求正文中添加resource參數。

+0

問題在於我沒有在POST主體中包含'resource'參數(即使文檔說明它是可選的)。我沒有發現這一點,因爲Socialite/Guzzle庫在它們的通用錯誤日誌中沒有包含相關錯誤,直到通過catch獲得。我現在得到另一個錯誤:'AADSTS90027:客戶端'...'和資源'...'確定相同的應用程序'這是解決[這裏](https://stackoverflow.com/questions/25212950/stuck-between -two-errors-in-an-azure-oauth2-token-request),但對我來說似乎不是一個很好的解決方案。感謝您的建議。 –

+0

你弄明白了嗎?我有同樣的問題:http://stackoverflow.com/questions/38648978/azure-ad-oauth2-access-token-request-error-400-bad-request – Midas

相關問題