Asp.net Facebook oauth2登录返回(400)错误请求
我正在将我的C#ASP.NET MVC 4 facebook登录转换为VB ASP.NET MVC 2版本项目 不幸的是,我得到了这个错误,我不能找出问题是什么 主要错误:错误请求400错误。 更详细的错误: WWW-Authenticate:OAuth“Facebook平台”“无效的\u代码”“验证验证代码时出错。请确保您的重定向\u uri与您在OAuth对话框请求中使用的相同” 控制器:Asp.net Facebook oauth2登录返回(400)错误请求,asp.net,vb.net,facebook,facebook-graph-api,Asp.net,Vb.net,Facebook,Facebook Graph Api,我正在将我的C#ASP.NET MVC 4 facebook登录转换为VB ASP.NET MVC 2版本项目 不幸的是,我得到了这个错误,我不能找出问题是什么 主要错误:错误请求400错误。 更详细的错误: WWW-Authenticate:OAuth“Facebook平台”“无效的\u代码”“验证验证代码时出错。请确保您的重定向\u uri与您在OAuth对话框请求中使用的相同” 控制器: <HttpPost> _ <AllowAnonymous> _
<HttpPost> _
<AllowAnonymous> _
Public Function ExternalLogin(provider As String, returnUrl As String) As ActionResult
Return New ExternalLoginResult(provider, Url.Action("ExternalLoginCallback", New With { _
Key .ReturnUrl = returnUrl _
}))
End Function
Public Function ExternalLoginCallback(returnUrl As String) As ActionResult
Dim result As AuthenticationResult = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", New With { _
Key .ReturnUrl = returnUrl _
}))
' Eind resultaat krijg je hier
If result.IsSuccessful Then
' Temporary Properties
Dim strTempGeslacht As String = result.ExtraData("gender")
' Properties
Dim strVoornaam As String = result.ExtraData("firstname")
Dim strAchternaam As String = result.ExtraData("lastname")
Dim strEmail As String = result.ExtraData("email")
Dim strGeboortePlaats As String = result.ExtraData("hometown")
Dim strWoonplaats As String = result.ExtraData("location")
Dim arrayWerk As String() = result.ExtraData("work").Split("*"C)
Dim intGeslacht As Integer = If(strTempGeslacht = "male", 0, 1)
Dim intOpenID As Int64 = Int64.Parse(result.ProviderUserId)
Dim CiDutch As New CultureInfo("nl-NL", False)
Dim strBirthday As String = String.Format("{0:dd/MM/yyyy}", result.ExtraData("birthday"))
' Redirect
Return RedirectToAction("Facebook", "Bedankt")
End If
' Error
Return RedirectToAction("Index", "Home")
End Function
Friend Class ExternalLoginResult
Inherits ActionResult
Public Sub New(provider__1 As String, returnUrl__2 As String)
Provider = provider__1
ReturnUrl = "http://localhost:25806/Facebook/ExternalLoginCallback"
End Sub
Public Provider As String
Public ReturnUrl As String
Public Overrides Sub ExecuteResult(context As ControllerContext)
OAuthWebSecurity.RequestAuthentication(Provider, ReturnUrl)
End Sub
End Class
End Class
查询url:
"https://graph.facebook.com/oauth/access_token?client_id=607648425938521&client_secret=ff099b80cc19da0ec0870df99fa465b0&redirect_uri=http%3a%2f%2flocalhost%3a18774%2fvacatures%2fExternalLoginCallBack%3f__provider__%3dfacebook%26__sid__%3d3dda4b1db178404094cbeef339d414b9&code=AQAAHJ0UoPjqvtOLjgUJ7ipzY0j7-8FxoTx7nt_Vxq9FD0cN-DhVH8BclofFEXPsPU7Fm1YHKGSlJRcLGedHSA23sVpkbssBp5yQo3PmBkUSZ9LBuckKrkjagvz4HkgFQ_oX2DoEPDmpkKo8O97GYlBt7j185SncBcpmbi8I7DNs9Z8wGP_FGQb8Mh6iMz3SH4IB1Ae3OppthmRXEJOj9k7xiboPsAYTf3w7E6MhWU3uNnR-SfA5RkSXkLas7xUnKF7eqmPM9_3pAMj2ObOAA1e4dcKke-QABo_FGx7LV0OY1pEeKIbbu9Ag5h0SBqmGi9k
所有链接都来自于正在工作的项目C#MVC4。我怀疑这实际上与.NET没有任何关系。在你的代码中,你有
ReturnUrl = "http://localhost:25806/Facebook/ExternalLoginCallback"
但是,您提供的查询url中的值是
http://localhost:18774/vacatures/ExternalLoginCallBack
在Facebook.com上的Facebook应用程序设置中,有一个用于返回URI的字段。此值可能与此处的值不同。您必须更改其中一个,使其匹配。这就是错误所解释的。我怀疑这实际上与.NET无关。在你的代码中,你有
ReturnUrl = "http://localhost:25806/Facebook/ExternalLoginCallback"
但是,您提供的查询url中的值是
http://localhost:18774/vacatures/ExternalLoginCallBack
在Facebook.com上的Facebook应用程序设置中,有一个用于返回URI的字段。此值可能与此处的值不同。您必须更改其中一个,使其匹配。这就是错误所解释的。6个小时,我花了6个小时试图找出问题所在 这只是大写B,我第一个请求是:ExternalLoginCallback,第二个请求是:ExternalLoginCallback
我同时快乐和悲伤,哈哈 6个小时,我花了6个小时试图找出问题所在 这只是大写B,我第一个请求是:ExternalLoginCallback,第二个请求是:ExternalLoginCallback
我同时快乐和悲伤,哈哈 我在那里使用的链接是我的asp.net mvc#4项目中使用的链接,我确实将其更改为,但它不起作用如果输入完整的URL会发生什么?此URL中是否有尾随斜杠?如果是这样,那么在对Oauth进程的两个调用中都需要尾部斜杠在查看您的问题时,查询uri中的值为。我很确定你的URL不匹配,这是造成这个问题的原因。我在那里使用的链接是我的asp.net mvc#4项目中使用的链接,我确实将其更改为,但它不起作用。如果输入完整的URL,会发生什么?这个URL中有尾随斜杠吗?如果是这样,那么在对Oauth进程的两个调用中都需要尾部斜杠在查看您的问题时,查询uri中的值为。我很确定你的URL不匹配,这就是造成这个问题的原因。400个错误请求也有同样的问题。必须修改ApplicationAuthProvider类中的ValidateClientRedirectUri代码。与400错误请求有相同的问题。必须修改ApplicationAuthProvider类中的ValidateClientRedirectUri代码。