c# - URL 被阻止:此重定向失败,因为重定向 URI 未在应用的客户端 OAuth 设置中列入白名单
问题描述
每当我使用 facebook 登录时,我都会创建 asp.net 5.0 项目,此错误将显示 URL Blocked: This redirect failed 因为重定向 URI 未在应用程序的客户端 OAuth 设置中列入白名单。确保客户端和 Web OAuth 登录已打开,并将所有应用程序域添加为有效 OAuth 重定向 URI。
string appid = string.Empty;
string appsecret = string.Empty;
public ContactUsController()
{
var configuration = GetConfiguration();
appid = configuration.GetSection("AppID").Value;
appsecret = configuration.GetSection("AppSecret").Value;
}
public IConfiguration GetConfiguration()
{
var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
return builder.Build();
}
private Uri RedirectUri
{
get
{
var uriBuilder = new UriBuilder(Request.Headers["Referer"].ToString());
uriBuilder.Query = null;
uriBuilder.Fragment = null;
uriBuilder.Path = Url.Action("FacebookCallback");
return uriBuilder.Uri;
}
}
public IActionResult Facebook()
{
var fb = new FacebookClient();
var loginurl = fb.GetLoginUrl(new
{
client_id = appid,
client_secret = appsecret,
redirect_uri = RedirectUri,
response_type = "code",
scop="email"
}) ;
return Redirect(loginurl.AbsoluteUri);
}
public IActionResult FacebookCallback(string code)
{
var fb = new FacebookClient();
dynamic result = fb.Post("oauth/access_token", new
{
client_id = appid,
client_secret = appsecret,
redirect_uri = RedirectUri,
code = code
});
var accessToken = result.access_token;
fb.AccessToken = accessToken;
dynamic data = fb.Get("me?fields = link,first_name,currency,last_name,emial,gender,locale,timezone,verified,picture,age_range");
TempData["email"] = data.email;
TempData["name"] = data.first_name + data.last_name;
TempData["picture"] = data.picture;
return RedirectToAction("Index", "ContactUs");
}
解决方案
推荐阅读
- python - Django:获取所有对象并将其返回以查看
- haskell - 可以为类型提供文字的构造函数的数据类型提升
- python - PI 会议地点中的 Google Calendar Python API
- bash - 匹配前对每行中的所有字符进行grep
- shell - 通过 shell 脚本检查响应
- jquery - 有没有办法改变 Trumbowyg 编辑器背景?
- node.js - “捕获”获得的 Artillery.io 值在“预期”中不可用
- node.js - npm error .... nodejs while installing express
- python - 如何找到所有可能的方法来加起来一个数字?
- java - 关于不可变模式的一些问题