Создание аутентификации ASP.NET Core с Logto
Узнайте, как создать поток аутентификации пользователя с ASP.NET Core, интегрировав SDK от Logto.
Узнайте, как создать поток аутентификации пользователя с ASP.NET Core, интегрировав SDK от Logto.
В этом руководстве мы покажем вам, как создать поток аутентификации пользователя с ASP.NET Core, интегрировав SDK от Logto. В руководстве используется C# в качестве языка программирования.
Перед началом убедитесь, что у вас есть следующее:
Для начала создайте приложение Logto типа "Традиционный веб". Следуйте этим шагам для создания приложения Logto:
Затем вы должны увидеть интерактивное руководство, которое направляет вас по процессу интеграции SDK Logto с вашим приложением ASP.NET Core. Следующее содержание может быть ссылкой для будущего использования.
Обратите внимание, что минимальная поддерживаемая версия ASP.NET Core - 6.0.
Откройте Startup.cs (или Program.cs) и добавьте следующий код для регистрации промежуточного программного обеспечения аутентификации Logto:
Метод AddLogtoAuthentication будет делать следующее:
LogtoDefaults.CookieScheme.LogtoDefaults.AuthenticationScheme.LogtoDefaults.AuthenticationScheme.Добавьте следующий URI в список Redirect URIs на странице сведений о приложении Logto:
Чтобы войти с Logto, вы можете использовать метод ChallengeAsync:
Метод ChallengeAsync перенаправит пользователя на страницу входа в систему Logto.
Свойство RedirectUri используется для перенаправления пользователя обратно в ваше веб-приложение после аутентификации. Обратите внимание, что это отличается от URI-адреса перенаправления, который вы настроили на странице деталей приложения Logto:
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:
RedirectUri - это URI, на который будет выполнено перенаправление после выполнения необходимых действий в промежуточном программном обеспечении аутентификации Logto.Порядок действий - 1 -> 2. Для ясности давайте назовемURI перенаправления после выхода на странице деталей приложения Logto ** URI перенаправления после выхода из Logto **, а свойство RedirectUri - ** URI перенаправления приложения после выхода из системы **.
** URI перенаправления после выхода из Logto ** имеет значение по умолчанию /SignedOutCallback, который вы можете оставить, если нет особых требований. Если вы хотите его изменить, вы можете установить свойство SignedOutCallbackPath для LogtoOptions:
Не забудьте обновить значение на странице сведений о приложении Logto соответствующим образом.
Во-первых, добавьте методы обработчика в ваш 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:
Если вы столкнулись с какими-либо проблемами во время интеграции, пожалуйста, не стесняйтесь связаться с нами по электронной почте по адресу [email protected] или присоединиться к нашему серверу Discord!