验证验证码时出错。请确保您的redirect_uri与您在OAuth对话框请求中使用的redirect_uri相同

时间:2016-09-29 07:15:13

标签: facebook facebook-login

2 个答案:

答案 0 :(得分:0)

我知道可能为时已晚,但我只想发表评论。如果仍然有此问题,请确保所有地方都具有相同的FacebookCallBack方法名称。我的意思是,例如,我有一个外部登录函数,该函数返回;

https://www.facebook.com/dialog/oauth?client_id=" + FB_APP_ID + "&redirect_uri=" + System.Net.WebUtility.UrlEncode(pageUrl + "account/**FacebookLoginCallback**?returnUrl=%2F").Replace("%3F", "&") + "&scope=email&enforce_https=1

,我还有一个FacebookLoginCallback方法,该方法与上面的名称完全相同。 (“ account / FacebookLoginCallback?....”)

[HttpGet("**FacebookLoginCallback**")]
public async Task<IActionResult> **FacebookLoginCallback**(string code, string returnUrl)
        {
            try
            {
                var myUrl = new Uri(HttpContext.Request.GetDisplayUrl()).GetLeftPart(UriPartial.Authority);
                var pageUrl = new UriBuilder(myUrl);
                var result = (IDictionary<string, object>)fb.Get("oauth/access_token", new
                {
                    client_id = FB_APP_ID,
                    client_secret = FB_APP_SECRET,
                    redirect_uri = pageUrl.Uri.AbsoluteUri.TrimEnd('/') + Url.Action("**FacebookLoginCallback**", "Account", new { returnUrl = returnUrl }),
                    code = code
                });
       }

......
}

如果您的网址中有变量/函数名称,请仔细检查。

快乐编码

答案 1 :(得分:-1)

首先,要授权的redirect_uri参数和access_token必须匹配。