Как запросить дополнительные претензии с аутентификацией Facebook - PullRequest
0 голосов
/ 17 января 2020

Я создал новый ASP. net Core 3.0 веб-сайт с индивидуальной аутентификацией пользователя из шаблона проекта. net.

Я храню пользователей, регистрируясь непосредственно на сайте или используя facebook. Вот как выглядит мой Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
     services.Configure<CookiePolicyOptions>(options => {
           // This determines user consent for non-essential cookies is needed for a given request.
           options.CheckConsentNeeded = context => true;
           options.MinimumSameSitePolicy = SameSiteMode.None;
      });

      services.AddDbContext<ApplicationDbContext>(options => {
           options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
      });

      services.AddAuthentication()
           //.AddMicrosoftAccount(microsoftOptions => {  })
           //.AddGoogle(googleOptions => {  })
           //.AddTwitter(twitterOptions => {  })
           .AddFacebook(facebookOptions =>
           {
               facebookOptions.AppId = "x";
               facebookOptions.AppSecret = "y";
           });

    ...
}

Все это отлично работает, и с помощью шаблона по умолчанию я могу зарегистрироваться / войти, как и ожидалось.

Когда я вхожу через Facebook, мне выдаются пять стандартных сведений о претензиях о пользователе:

  • идентификатор имени
  • адрес электронной почты
  • имя
  • имя
  • фамилия

Что мне нужно сделать, это расширить код, чтобы он сделал больше, чем по умолчанию, и предоставил мне доступ к пользователям:

  • номер телефона
  • адрес
  • почтовый индекс

(очевидно, с согласия пользователей)

Имею читал документацию (https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins?view=aspnetcore-3.1), но похоже, что больше о настройке поставщика аутентификации, чем о дополнительной информации о претензиях.

Кто-нибудь делал это? Может быть, это невозможно?

Спасибо за любые указатели заранее.

1 Ответ

1 голос
/ 17 января 2020

От: Сохраните дополнительные заявки и токены от внешних поставщиков в ASP. NET Core - если приложению требуются дополнительные области, добавьте их в параметры. Например, в Facebook вы можете добавить такие области, как это.

services.AddAuthentication().AddFacebook(facebookOptions =>
{
    facebookOptions.AppId = "4387237897237";
    facebookOptions.AppSecret = "23498423808320849082308";
    facebookOptions.Scope.Add("email");
    facebookOptions.Scope.Add("user_location");
    facebookOptions.Scope.Add("user_birthday");
});

, которые будут отображать такие подробности - экран входа в систему подробнее. 1011 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...