2013-05-03 42 views
0

在第二次調用Client.ProcessUserAuthorization();後,我得到了OAuth的服務器的代碼,我得到一個異常:Error occurred while sending a direct message or getting the response.AccessTokenAuthorizationCodeRequestC「錯誤」:「INVALID_REQUEST」

這裏是最後一部分從log4net的拍攝日誌文件,完整的日誌記錄在此要點:https://gist.github.com/tonyeung/5513769

2013-05-03 15:14:41,292 (GMT-5) [10] DEBUG DotNetOpenAuth.Messaging.Channel - Sending AccessTokenAuthorizationCodeRequestC request. 
2013-05-03 15:14:41,393 (GMT-5) [10] DEBUG DotNetOpenAuth.Http - HTTP POST http://localhost:38828/OAuth/Token 
2013-05-03 15:14:41,450 (GMT-5) [10] ERROR DotNetOpenAuth.Http - http://localhost:38828/OAuth/Token returned 400 BadRequest: Bad Request 
2013-05-03 15:14:41,450 (GMT-5) [10] DEBUG DotNetOpenAuth.Http - WebException from http://localhost:38828/OAuth/Token: 
{"error":"invalid_request"} 

我上傳解決https://github.com/tonyeung/dotnetopenauth
入口點是在客戶端項目的家庭控制器上的有關行動。
解決方案是在最新的nuget dnoa軟件包VS2012中。 Nuget恢復已打開。

請注意,爲了理解庫的工作原理,我正在實施部分功能。我確信這個錯誤是由於某處丟失了實現,但我不確定它是什麼?

回答

0

所以看起來我缺少授權服務器中IsAuthorizationValid和CreateAccessToken的實現。請檢查github存儲庫中存放的存根,這會導致錯誤消失。

編輯: 還有一個數據庫驗證錯誤,我沒有陷阱。所以基本上服務器端的任何錯誤都會導致它看起來像這樣的消息。

EDIT2: 還有一個問題,如果該網頁的網址包含任何非網址編碼值,它會拋出一個無效的請求。在我的情況下,我的登錄頁面有一個查詢字符串參數returnUrl,並且我將它設置爲/ Home,它不是這樣,必須是:%2FHome

相關問題