什么可能导致错误验证验证码? (facebook oAuth来自MVC3问题)

时间:2012-02-07 22:45:05

标签: facebook asp.net-mvc-3 oauth

我最近开始使用Facebook登录我的网站时遇到问题。我一直看到这条错误消息:

Facebook.FacebookOAuthException:(OAuthException)验证验证码时出错。

网站和软件发生了重大变化;在我深入研究这些变化之前,我想消除一些简单的常见原因。

这可能是防火墙问题(该网站位于防火墙后面,无法从我们的网络外部访问)?此错误消息的最常见原因是什么?

1 个答案:

答案 0 :(得分:1)

确保您的redirectUri参数与您在https://www.facebook.com/dialog/oauth电话上使用的redirecturi相同。

例如,给定初始身份验证请求

using Facebook;
public ActionResult fbLogOn( string token, string returnUrl )
        {
            var oAuthClient = new FacebookOAuthClient( FacebookApplication.Current );

            oAuthClient.RedirectUri = 
                       new Uri( "http://" + "localhost:3434" + "/Home/fbOAuth" );
<... etc ...>

确保facebook响应的处理程序将重定向URI设置为完全相同的URI:

using Facebook;
public ActionResult fbOAuth(string code, string state )
{
  FacebookOAuthResult oauthResult;
  if (FacebookOAuthResult.TryParse( Request.Url, out oauthResult ))
  {
    string token = HttpUtility.UrlDecode( state );
    if (oauthResult.IsSuccess)
    {
      var oAuthClient = new FacebookOAuthClient( FacebookApplication.Current );
      oAuthClient.RedirectUri = 
                 new Uri( "http://" + "localhost:3434" + "/Home/fbOAuth" );
      dynamic tokenResult = oAuthClient.ExchangeCodeForAccessToken( code );
      string accessToken = tokenResult.access_token;
<... etc ...>