asp.net-mvc – 访问OAuth中的电子邮件地址ExternalLoginCallback从Facebook
|
参见英文答案 > Why new fb api 2.4 returns null email on MVC 5 with Identity and oauth 2?5个答案使用Facebook API v2.3,如果设置了以下设置,用户的电子邮件地址将返回到ExternalLoginCallback; app.UseFacebookAuthentication(new FacebookAuthenticationOptions
{
AppId = "XXX",AppSecret = "XXX",Scope = { "email" }
});
但是,任何只能针对v2.4(7月8日发布)的应用程序不再将电子邮件地址返回到ExternalLoginCallback。 我认为这可能与here所列的v2.4变更有关;
如何才能立即访问此电子邮件地址? 解决方法要解决这个问题,我不得不从nuget安装 Facebook SDK for .NET,并分别查询电子邮件地址。在ExternalLoginCallback方法中,我添加了一个条件来填充Facebook Graph API中的电子邮件地址; var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
// added the following lines
if (loginInfo.Login.LoginProvider == "Facebook")
{
var identity = AuthenticationManager.GetExternalIdentity(DefaultAuthenticationTypes.ExternalCookie);
var access_token = identity.FindFirstValue("FacebookAccessToken");
var fb = new FacebookClient(access_token);
dynamic myInfo = fb.Get("/me?fields=email"); // specify the email field
loginInfo.Email = myInfo.email;
}
并获得FacebookAccessToken我扩展了ConfigureAuth; app.UseFacebookAuthentication(new FacebookAuthenticationOptions
{
AppId = "XXX",Scope = { "email" },Provider = new FacebookAuthenticationProvider
{
OnAuthenticated = context =>
{
context.Identity.AddClaim(new System.Security.Claims.Claim("FacebookAccessToken",context.AccessToken));
return Task.FromResult(true);
}
}
}); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ELMAH – 使用自定义错误页面收集用户反馈
- asp.net-mvc – 如何每秒自动刷新MVC PartialView
- asp.net-mvc-3 – 使用ViewData将字符串从Controller传递到
- asp.net-mvc – 自定义ActionLink帮助器,它知道你正在使用哪
- asp.net-mvc – ASP.net MVC – 视图如何访问模型?
- asp.net-mvc-3 – ASP.NET MVC3从https重定向到http
- asp.net – .net中的Ajax响应数据
- asp.net-mvc – 添加一个默认的SelectListItem
- asp.net-mvc-4 – Cshtml无法解析引用
- RavenDB ASP.NET会话提供程序?
- asp.net-mvc – ASP.NET MVC 3自定义HTML助手 –
- asp.net-mvc – @Model和@model之间的区别
- asp.net-mvc – 刷新IdentityServer4客户端中的访
- asp.net – SCRIPT5022:Sys.WebForms.PageReque
- entity-framework – 如果EF 5,如何定义自定义命
- asp.net – html脚本标签不使用类型javascript?
- asp.net-core – MVC 6安装为Windows服务(ASP.NE
- asp.net-mvc – 在默认路由的ASP.NET MVC中的Url
- asp.net-mvc-3 – MVC中的SSO(单点登录)
- nTier应用程序中的.Net会员资格
