我正在学习如何使用VS 2015中的默认MVC模板使用OWIN外部验证。我启用了Facebook验证并添加了范围“电子邮件”,期望用户的电子邮件由Facebook返回在用户通过认证后(根据this)。不过,上下文中没有电子邮件。用户JSON对象和上下文。电子邮件也是空的。正在检索OWIN登录用户的Facebook电子邮件
这在Startup.Auth.cs
var facebookOptions = new FacebookAuthenticationOptions
{
AppId = "XXXXXX",
AppSecret = "XXXXXX",
Provider = new FacebookAuthenticationProvider
{
OnAuthenticated = context =>
{
// Retrieve the OAuth access token to store for subsequent API calls
var accessToken = context.AccessToken;
// Retrieve the username
var facebookUserName = context.UserName;
// WHY IS IT EMPTY?
var facebookEmail = context.Email;
// You can even retrieve the full JSON-serialized user
var serializedUser = context.User;
return Task.FromResult(0);
}
}
};
facebookOptions.Scope.Add("email");
app.UseFacebookAuthentication(facebookOptions);
任何想法相关的代码缺少什么?为什么Facebook电子邮件地址不被退回?
可能有用的信息在这里:HTTP: //stackoverflow.com/a/32636149/3130094 –
谢谢@JamieDunstan - 这是有帮助的! – Andrey