AccessTokenAuthorizationCodeRequestC“错误”:“INVALID_REQUEST”
问题描述:
在第二次调用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恢复已打开。
请注意,为了理解库的工作原理,我正在实施部分功能。我确信这个错误是由于某处丢失了实现,但我不确定它是什么?
答
所以看起来我缺少授权服务器中IsAuthorizationValid和CreateAccessToken的实现。请检查github存储库中存放的存根,这会导致错误消失。
编辑: 还有一个数据库验证错误,我没有陷阱。所以基本上服务器端的任何错误都会导致它看起来像这样的消息。
EDIT2: 还有一个问题,如果该网页的网址包含任何非网址编码值,它会抛出一个无效的请求。在我的情况下,我的登录页面有一个查询字符串参数returnUrl,并且我将它设置为/ Home,它不是这样,必须是:%2FHome