Настройка Facebook Login для asp.net core

Я настраиваю Facebook авторизацию для сайта, тестирую на Стейдж сервере. Сама система написана на asp.net core razore pages.

Есть два Facebook аккаунта:

  1. Владелец Facebook Login App. Имеет настроенный email с доступом видно только мне.
  2. Пользовательская учётная запись. Имеет настроенный email с доступом видно всем.

Для Facebook Login App настроены следующие доступы по вкладке Permitions and Features:

  • email
  • public_profile

Теперь о том, как настроена конфигурация FacebookAuthentication у меня в программе.

  • Middleware (все ключи валидные):

    .AddFacebook(FacebookDefaults.AuthenticationScheme, options =>
    {
        options.AppId = configuration.GetSection(FacebookAuthenticationAppIdSection).Value;
        options.AppSecret = configuration.GetSection(FacebookAuthenticationAppSecretSection).Value;

        options.Scope.Add("email");
        options.Fields.Add("email");
    })

  • При выборе авторизации через Facebook попадаем в этот контроллер:

    public async Task<IActionResult> SignIn(string provider)
    {
        AuthenticationProperties properties = identityService.ConfigureExternalAuthenticationProperties(provider, Url.Action("ExternalAuthenticationProcess", "ExternalAuthentication"));
        return new ChallengeResult(provider, properties);
    }

  • При подтверждении авторизации через учётную запись Facebook вызывается этот код внутри сервиса:
    ExternalLoginInfo? loginInfo = await signInManager.GetExternalLoginInfoAsync();
    if (loginInfo is null)
    {
        return Error(UnexpectedError);
    }

    ClaimsPrincipal? principal = loginInfo.Principal;
    if (principal is null)
    {
        return Error(UnexpectedError);
    }

    // ...

Суть в том, что при использовании аккаунта владельца Facebook Login App я получаю нужную мне Клайму email, хотя она имеет доступ "видно только мне". При использовании другой учётной записи, я не могу получить почту.

Вот какие Claims мне приходят для владельца:

Для другого пользователя:

То есть, приходится всё, кроме почты.

Как всё же мне получить почту при входе через Facebook?


Ответы (0 шт):