Настройка внешнего входа Facebook в ASP.NET Core

Настройка внешнего входа Facebook в ASP.NET Core

в этом учебнике с примерами кода показано, как включить вход пользователей с помощью учетной записи Facebook, используя пример проекта ASP.NET Core, созданный на предыдущей странице. Начнем с создания идентификатора приложения Facebook, следуя официальным действиям.

Создание приложения в Facebook

Перейдите на страницу приложения Facebook Developers и выполните вход. Если у вас еще нет учетной записи Facebook, используйте ссылку зарегистрироваться для Facebook на странице входа, чтобы создать ее. После получения учетной записи Facebook следуйте инструкциям по регистрации в качестве разработчика Facebook.

в меню Мои приложения выберите создать приложение. Откроется форма Создание приложения .

Выберите тип приложения, который лучше подходит для вашего проекта. Для этого проекта выберите потребитель, а затем нажмите кнопку Далее. Будет создан новый идентификатор приложения.

Заполните форму и нажмите кнопку создать приложение .

На странице Добавление продуктов в приложение выберите настроить на карточке входа Facebook .

Мастер быстрого запуска запускается с параметром выбрать платформу в качестве первой страницы. чтобы обойти этот мастер, щелкните ссылку логинПараметры FaceBook в меню в левом нижнем углу экрана:

страница Параметры клиента OAuth представлена:

Введите универсальный код ресурса (URI) для разработки с /сигнин-фацебук , добавленным в допустимое поле URI перенаправления OAuth (например: https://localhost:44320/signin-facebook ). Проверка подлинности Facebook, настроенная далее в этом руководстве, автоматически обрабатывает запросы по маршруту /сигнин-фацебук для реализации потока OAuth.

URI /сигнин-фацебук задается в качестве обратного вызова по умолчанию для поставщика проверки подлинности Facebook. URI обратного вызова по умолчанию можно изменить при настройке по промежуточного слоя проверки подлинности Facebook с помощью свойства FacebookOptions inherited RemoteAuthenticationOptions.CallbackPath класса.

Щелкните Save changes (Сохранить изменения).

в области навигации слева выберите Параметры>простая ссылка.

Запишите App ID и App Secret ваш. вы добавите оба варианта в приложение ASP.NET Core в следующем разделе:

При развертывании сайта необходимо повторно посетить страницу настройки имени входа Facebook и зарегистрировать новый общедоступный URI.

Хранение идентификатора и секрета приложения Facebook

Храните конфиденциальные параметры, такие как идентификатор приложения Facebook и значения секрета, с помощью диспетчера секретов. Для этого примера выполните следующие действия.

Инициализируйте проект для хранения секретных данных согласно инструкциям в разделе Включение секретного хранилища.

Храните конфиденциальные параметры в локальном хранилище секретов с секретными ключами Authentication:Facebook:AppId и Authentication:Facebook:AppSecret :

Разделитель : не работает с иерархическими ключами переменных среды на всех платформах. __ (двойной символ подчеркивания):

  • Поддерживается всеми платформами. Например, разделитель : не поддерживается Bash, а __ — поддерживается.
  • Автоматически заменяется на :

Настройка проверки подлинности Facebook

Добавьте службу Startup.ConfigureServices проверки подлинности в:

Добавьте службу Program проверки подлинности в:

AddAuthentication(IServiceCollection, String)Перегрузка задает DefaultScheme свойство. AddAuthentication(IServiceCollection, Action<AuthenticationOptions>)Перегрузка позволяет настроить параметры проверки подлинности, которые можно использовать для настройки схем проверки подлинности по умолчанию для различных целей. Последующие вызовы для AddAuthentication переопределения ранее настроенных AuthenticationOptions свойств.

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

Вход с помощью Facebook

  • Запустите приложение и выберите Вход.
  • В разделе использовать другую службу для входа в системувыберите Facebook.
  • Вы будете перенаправлены на Facebook для проверки подлинности.
  • Введите учетные данные Facebook.
  • Вы будете перенаправлены на сайт, где можно задать свой адрес электронной почты.

Теперь вы выполнили вход с использованием учетных данных Facebook:

React отменить авторизацию внешнего входа

AccessDeniedPath может предоставить путь перенаправления к агенту пользователя, когда пользователь не утвердит запрошенный запрос на авторизацию.

Следующий код задает для "/AccessDeniedPathInfo" значение AccessDeniedPath :

Рекомендуется, AccessDeniedPath чтобы страница содержала следующие сведения:

  • Удаленная проверка подлинности была отменена.
  • Для этого приложения требуется проверка подлинности.
  • Чтобы повторить попытку входа, выберите ссылку для входа.
Тестовый Акцессдениедпас
  • Перейдите по адресу Facebook.com
  • Если вы вошли в систему, необходимо выйти из нее.
  • Запустите приложение и выберите пункт Вход в Facebook.
  • Выберите не сейчас. Вы будете перенаправлены на указанную AccessDeniedPath страницу.

Переадресация сведений запроса с помощью прокси-сервера или подсистемы балансировки нагрузки

Если приложение развертывается с прокси-сервером или подсистемой балансировки нагрузки, некоторые сведения из исходного запроса можно перенаправить в приложение в заголовках запроса. Эти сведения обычно включают безопасную схему запроса ( https ), узел и IP-адрес клиента. Приложения не считывают автоматически и не используют эти заголовки запроса.

Схема используется для создания ссылок, определяющих процесс проверки подлинности с помощью внешних поставщиков. Потеря безопасной схемы ( https ) приводит к тому, что приложение неправильно выполняет перенаправление на небезопасные URL-адреса.

Используйте ПО промежуточного слоя для перенаправленных заголовков, чтобы предоставить приложению сведения из исходных запросов для обработки запросов.

Несколько поставщиков проверки подлинности

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

Дополнительные сведения о параметрах конфигурации, поддерживаемых проверкой подлинности Facebook, см. в справочнике по FacebookOptions API. Параметры конфигурации можно использовать для:

  • Запросите другие сведения о пользователе.
  • Добавьте аргументы строки запроса, чтобы настроить процедуру входа.

Устранение неполадок

  • только ASP.NET Core 2. x: если Identity не настроено с помощью вызова services.AddIdentity в ConfigureServices , попытка проверки подлинности приведет к тому, что будет получено исключение ArgumentException: необходимо указать параметр "сигнинсчеме". Шаблон проекта, используемый в этом руководстве, гарантирует, что это будет сделано.
  • Если база данных сайта не была создана путем применения первоначальной миграции, то при обработке ошибки запроса возникнет Ошибка операции с базой данных . Выберите Применить миграции , чтобы создать базу данных и обновить, чтобы продолжить выполнение после ошибки.

Дальнейшие действия

В этой статье показано, как можно пройти проверку подлинности с помощью Facebook. Аналогичный подход можно использовать для проверки подлинности с другими поставщиками, перечисленными на предыдущей странице.

После публикации веб-сайта в веб-приложение Azure необходимо сбросить его AppSecret на портале разработчика Facebook.

Authentication:Facebook:AppId задайте параметры приложения и Authentication:Facebook:AppSecret в портал Azure. Система конфигурации настроена на чтение ключей из переменных среды.

📎📎📎📎📎📎📎📎📎📎