Русский
  • asp-net-core
  • c-sharp
  • руководство
  • аут
  • аутентификация
  • oauth
  • oidc
  • идентичность

Создание аутентификации ASP.NET Core с Logto

Узнайте, как создать поток аутентификации пользователя с ASP.NET Core, интегрировав SDK от Logto.

Gao
Gao
Founder

Введение

  • Logto - это современная альтернатива Auth0 для создания инфраструктуры идентификации клиентов с минимальными усилиями. Он поддерживает различные методы входа в систему, включая имя пользователя, электронную почту, номер телефона и популярные социальные входы, такие как Google и GitHub.
  • ASP.NET Core - это кросс-платформенный, высокопроизводительный, открытый фреймворк для создания современных, облачных, подключенных к Интернету приложений.

В этом руководстве мы покажем вам, как создать поток аутентификации пользователя с ASP.NET Core, интегрировав SDK от Logto. В руководстве используется C# в качестве языка программирования.

Предварительные требования

Перед началом убедитесь, что у вас есть следующее:

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

Для начала создайте приложение Logto типа "Традиционный веб". Следуйте этим шагам для создания приложения Logto:

  1. Войдите в консоль Logto.
  2. В левой панели навигации нажмите на Приложения.
  3. Нажмите на Создать приложение.
  4. На открывшейся странице найдите раздел "Традиционное веб-приложение" и найдите карту "ASP.NET Core".
  5. Нажмите на Начать создание и введите имя вашего приложения.
  6. Нажмите на Создать.

Затем вы должны увидеть интерактивное руководство, которое направляет вас по процессу интеграции SDK Logto с вашим приложением ASP.NET Core. Следующее содержание может быть ссылкой для будущего использования.

Интеграция с SDK Logto

Установка

Обратите внимание, что минимальная поддерживаемая версия ASP.NET Core - 6.0.

Добавление промежуточного программного обеспечения аутентификации Logto

Откройте Startup.cs (или Program.cs) и добавьте следующий код для регистрации промежуточного программного обеспечения аутентификации Logto:

Метод AddLogtoAuthentication будет делать следующее:

  • Устанавливает схему аутентификации по умолчанию на LogtoDefaults.CookieScheme.
  • Устанавливает схему вызова аутентификации по умолчанию на LogtoDefaults.AuthenticationScheme.
  • Устанавливает схему выхода по умолчанию на LogtoDefaults.AuthenticationScheme.
  • Добавляет обработчики аутентификации cookie и OpenID Connect к схеме аутентификации.

Вход в систему

Добавьте следующий URI в список Redirect URIs на странице сведений о приложении Logto:

Чтобы войти с Logto, вы можете использовать метод ChallengeAsync:

Метод ChallengeAsync перенаправит пользователя на страницу входа в систему Logto.

Свойство RedirectUri используется для перенаправления пользователя обратно в ваше веб-приложение после аутентификации. Обратите внимание, что это отличается от URI-адреса перенаправления, который вы настроили на странице деталей приложения Logto:

  1. URI-адрес перенаправления на странице деталей приложения Logto - это URI-адрес, на который Logto перенаправит пользователя после входа в систему.
  2. Свойство RedirectUri - это URI, на который будет выполнено перенаправление после выполнения необходимых действий в промежуточном программном обеспечении аутентификации Logto.

Порядок действий - 1 -> 2. Для ясности давайте назовем URI перенаправления на странице деталей приложения Logto URI перенаправления Logto и свойство RedirectUri - URI перенаправления приложения.

URI перенаправления Logto имеет значение по умолчанию /Callback, которое вы можете оставить, если нет особых требований. Если вы хотите его изменить, вы можете установить свойство CallbackPath для LogtoOptions:

Не забудьте обновить значение на странице сведений о приложении Logto соответствующим образом.

Выход из системы

Добавьте следующий URI в список Post sign-out redirect URIs на странице сведений о приложении Logto:

Чтобы выйти с Logto, вы можете использовать метод SignOutAsync:

Метод SignOutAsync очистит аутентификационный cookie и перенаправит пользователя на страницу выхода из Logto.

Свойство RedirectUri используется для перенаправления пользователя обратно в ваше веб-приложение после выхода из системы. Обратите внимание, что это отличается от URI перенаправления после выхода, который вы настроили на странице деталей приложения Logto:

  1. URI перенаправления после выхода на странице деталей приложения Logto - это URI-адрес, на который Logto перенаправит пользователя после выхода из системы.
  2. Свойство RedirectUri - это URI, на который будет выполнено перенаправление после выполнения необходимых действий в промежуточном программном обеспечении аутентификации Logto.

Порядок действий - 1 -> 2. Для ясности давайте назовемURI перенаправления после выхода на странице деталей приложения Logto ** URI перенаправления после выхода из Logto **, а свойство RedirectUri - ** URI перенаправления приложения после выхода из системы **.

** URI перенаправления после выхода из Logto ** имеет значение по умолчанию /SignedOutCallback, который вы можете оставить, если нет особых требований. Если вы хотите его изменить, вы можете установить свойство SignedOutCallbackPath для LogtoOptions:

Не забудьте обновить значение на странице сведений о приложении Logto соответствующим образом.

Реализация кнопок входа / выхода (Razor Pages)

Во-первых, добавьте методы обработчика в ваш PageModel, например:

Затем добавьте кнопки на вашей странице Razor (html):

<p>Аутентифицирован: @User.Identity?.IsAuthenticated</p>
<form method="post">
  @if (User.Identity?.IsAuthenticated == true)
  {
    <button type="submit" asp-page-handler="SignOut">Выйти</button>
  } else {
    <button type="submit" asp-page-handler="SignIn">Войти</button>
  }
</form>

Он покажет кнопку "Войти", если пользователь не аутентифицирован, и покажет кнопку "Выйти", если пользователь аутентифицирован.

Контрольная точка: Запустите веб-приложение

Теперь вы можете запустить веб-приложение и попробовать войти / выйти с Logto:

  1. Откройте веб-приложение в вашем браузере, вы должны увидеть "Аутентифицирован: False" и кнопку "Войти".
  2. Нажмите кнопку "Войти", и вы должны быть перенаправлены на страницу входа в Logto.
  3. После того как вы вошли в систему, вы должны быть перенаправлены обратно в веб-приложение, и вы должны увидеть "Аутентифицирован: True" и кнопку "Выйти".
  4. Нажмите кнопку "Выйти", и вы должны быть перенаправлены на страницу выхода из Logto, а затем перенаправлены обратно в веб-приложение.

Если вы столкнулись с какими-либо проблемами во время интеграции, пожалуйста, не стесняйтесь связаться с нами по электронной почте по адресу [email protected] или присоединиться к нашему серверу Discord!

Дальнейшее чтение