Budowanie uwierzytelniania z ASP.NET Core przy pomocy Logto
Dowiedz się, jak zbudować przepływ uwierzytelniania użytkowników z ASP.NET Core, integrując SDK Logto.
Dowiedz się, jak zbudować przepływ uwierzytelniania użytkowników z ASP.NET Core, integrując SDK Logto.
W tym przewodniku pokażemy, jak zbudować przepływ uwierzytelniania użytkowników z ASP.NET Core, integrując SDK Logto. Przewodnik korzysta z języka programowania C#.
Zanim zaczniesz, upewnij się, że masz następujące elementy:
Aby rozpocząć, utwórz aplikację Logto o typie "Tradycyjna strona internetowa". Postępuj zgodnie z poniższymi krokami, aby utworzyć aplikację Logto:
Następnie powinieneś zobaczyć interaktywny przewodnik, który prowadzi Cię przez proces integracji SDK Logto z Twoją aplikacją ASP.NET Core. Poniższa treść może być punktem odniesienia na przyszłość.
Zauważ, że minimalna obsługiwana wersja ASP.NET Core to 6.0.
Otwórz Startup.cs (lub Program.cs) i dodaj następujący kod w celu zarejestrowania middleware uwierzytelniania Logto:
Metoda AddLogtoAuthentication będzie wykonywać następujące zadania:
LogtoDefaults.CookieScheme.LogtoDefaults.AuthenticationScheme.LogtoDefaults.AuthenticationScheme.Dodaj następujący URI do listy Redirect URIs na stronie szczegółów aplikacji Logto:
Aby zalogować się za pomocą Logto, możesz skorzystać z metody ChallengeAsync:
Metoda ChallengeAsync przekieruje użytkownika na stronę logowania Logto.
Właściwość RedirectUri służy do przekierowania użytkownika z powrotem do Twojej aplikacji webowej po uwierzytelnieniu. Zauważ, że jest to inne niż URI przekierowania, które skonfigurowałeś na stronie szczegółów aplikacji Logto:
RedirectUri to URI, do którego zostanie przekierowany przepływ po wykonaniu niezbędnych czynności w middleware uwierzytelniania Logto.Kolejność działań to 1 -> 2. Dla jasności, URI przekierowania na stronie szczegółów aplikacji Logto nazwiemy URI przekierowania Logto a właściwość RedirectUri nazwiemy URI przekierowania aplikacji.
URI przekierowania Logto ma wartość domyślną /Callback, którą można zostawić taką, jaka jest, jeśli nie ma specyficznych wymagań. Jeżeli chcesz ją zmienić, możesz ustawić właściwość CallbackPath dla LogtoOptions:
Pamiętaj, aby zaktualizować wartość na stronie szczegółów aplikacji Logto odpowiednio.
Dodaj następujące URI do listy Post sign-out redirect URIs na stronie szczegółów aplikacji Logto:
Aby wylogować się za pomocą Logto, możesz skorzystać z metody SignOutAsync:
Metoda SignOutAsync wyczyści ciasteczko uwierzytelniania i przekieruje użytkownika na stronę wylogowania Logto.
Właściwość RedirectUri służy do przekierowania użytkownika z powrotem do Twojej aplikacji webowej po wylogowaniu. Zauważ, że różni się to od URI przekierowania po wylogowaniu, które skonfigurowałeś na stronie szczegółów aplikacji Logto:
RedirectUri to URI, do którego zostanie przekierowany przepływ po wykonaniu niezbędnych działań w middleware uwierzytelniania Logto.Kolejność działań to 1 -> 2. Dla jasności, URI przekierowania po wylogowaniu na stronie szczegółów aplikacji Logto nazwiemy URI przekierowania po wylogowaniu Logto a właściwość RedirectUri nazwiemy URI przekierowania po wylogowaniu aplikacji.
URI przekierowania po wylogowaniu Logto ma wartość domyślną /SignedOutCallback, którą można zostawić taką, jaka jest, jeśli nie ma specyficznych wymagań. Jeżeli chcesz ją zmienić, możesz ustawić właściwość SignedOutCallbackPath dla LogtoOptions:
Pamiętaj, aby zaktualizować wartość na stronie szczegółów aplikacji Logto odpowiednio.
Po pierwsze, dodaj metody obsługujące do PageModel, na przykład:
Następnie dodaj przyciski do swojej strony Razor (html):
<p>Czy jest zalogowany: @User.Identity?.IsAuthenticated</p>
<form method="post">
@if (User.Identity?.IsAuthenticated == true)
{
<button type="submit" asp-page-handler="SignOut">Wyloguj się</button>
} else {
<button type="submit" asp-page-handler="SignIn">Zaloguj się</button>
}
</form>
Pokaże przycisk "Zaloguj się", jeśli użytkownik nie jest zalogowany, oraz przycisk "Wyloguj się", jeśli użytkownik jest zalogowany.
Teraz możesz uruchomić aplikację webową i spróbować zalogować się/wylogować z Logto:
Jeśli napotkasz jakiekolwiek problemy podczas integracji, nie wahaj się skontaktować z nami poprzez e-mail na adres [email protected] lub dołącz do naszego serwera Discord!