MVC6 Facebook 身份错过了电子邮件声明
MVC6 Facebook identity misses email claim
我正在调试MVC6 MusicStore。我发现在 ExternalLoginCallback
方法中访问的 Facebook ExternalIdentity
没有电子邮件声明。同时,我的测试 MVC5 应用程序成功获得了该声明,因此这不是 Facebook 应用程序的问题。
有谁知道这是否是测试版错误?
您需要在 Startup.cs
的 Facebook 身份验证选项中添加 email
app.UseIdentity().UseFacebookAuthentication(options =>
{
options.Scope.Add("email");
});
出于某种原因,在升级到 Facebook API v 2.4 后这不起作用。但是像这样添加 .UserInformationEndpoint 是有效的:
app.UseFacebookAuthentication(options =>
{
options.AppId = Configuration["Authentication:Facebook:AppId"];
options.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
options.Scope.Add("email");
options.UserInformationEndpoint = "https://graph.facebook.com/v2.4/me?fields=id,name,email,first_name,last_name,location";
});
我正在调试MVC6 MusicStore。我发现在 ExternalLoginCallback
方法中访问的 Facebook ExternalIdentity
没有电子邮件声明。同时,我的测试 MVC5 应用程序成功获得了该声明,因此这不是 Facebook 应用程序的问题。
有谁知道这是否是测试版错误?
您需要在 Startup.cs
的 Facebook 身份验证选项中添加email
app.UseIdentity().UseFacebookAuthentication(options =>
{
options.Scope.Add("email");
});
出于某种原因,在升级到 Facebook API v 2.4 后这不起作用。但是像这样添加 .UserInformationEndpoint 是有效的:
app.UseFacebookAuthentication(options =>
{
options.AppId = Configuration["Authentication:Facebook:AppId"];
options.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
options.Scope.Add("email");
options.UserInformationEndpoint = "https://graph.facebook.com/v2.4/me?fields=id,name,email,first_name,last_name,location";
});