Facebook身份验证的其他权限

时间:2016-01-07 22:33:53

标签: asp.net-core asp.net-core-mvc facebook-authentication

我正在为我的新ASP.NET 5 MVC 6应用程序添加Facebook身份验证。我正在关注这篇文章: https://docs.asp.net/en/latest/security/authentication/sociallogins.html

我将以下代码段添加到我的启动配置方法中,该方法可以获取有关用户的基本信息。

app.UseFacebookAuthentication(options =>
{
   options.AppId = "myFacebookAppId";
   options.AppSecret = "myFacebookSecret";
});

我想从Facebook请求另外一件事,即用户的出生日期。

我在代码中添加哪些内容?

2 个答案:

答案 0 :(得分:1)

要请求用户的出生日期,您需要:

  • 更新Scope属性以确保在创建授权请求时Facebook中间件包含user_birthday范围。如果您未添加user_birthday范围,则图表API将永远不会返回用户的出生日期options.Scope.Add("user_birthday");

  • 根据@blowdart Fields的建议,更新birthday媒体资源以包含options.Fields.Add("birthday");字段。

但请注意,ASP.NET 5 RC1(最新版本的ATM)中不存在Fields属性。或者,you can also replace the UserInformationEndpoint property to include the fields you need

options.UserInformationEndpoint = "https://graph.facebook.com/me?fields=birthday,email,name";

答案 1 :(得分:0)

options类有一个Fields属性;

/// <summary>
/// The list of fields to retrieve from the UserInformationEndpoint.
/// https://developers.facebook.com/docs/graph-api/reference/user
/// </summary>
public IList<string> Fields { get; }

birthday添加到Fields属性。