AccessTokenAuthorizationCodeRequestC“error”:“invalid_request”

时间:2013-05-03 20:31:31

标签: dotnetopenauth

在我从oauth服务器获取代码后第二次调用Client.ProcessUserAuthorization();时,出现异常: Error occurred while sending a direct message or getting the response.

以下是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
入口点位于客户项目的主控制器上的about操作中 解决方案是VS2012,最新的nuget dnoa软件包。 Nuget恢复已开启。

请注意,为了了解图书馆的运作方式,我正在实施我需要的部分。我确定这个错误是由于某处缺少实施,但我不确定它是什么?

1 个答案:

答案 0 :(得分:0)

所以看起来我在Authorization Server中缺少IsAuthorizationValid和CreateAccessToken的实现。请检查github存储库中我输入的存根,这会导致错误消失。

编辑: 还有一个数据库验证错误,我没有陷阱。所以基本上服务器端的任何错误都会导致它看起来像这样的消息。

EDIT2: 还有一个问题,如果页面的url包含任何非url编码值,它将抛出无效请求。在我的情况下,我的登录页面有一个querystring参数returnUrl,我把它设置为/ Home,它不喜欢,必须是:%2FHome