Erstellen Sie ASP.NET Core-Authentifizierung mit Logto
Lernen Sie, wie Sie einen Benutzerauthentifizierungsfluss mit ASP.NET Core erstellen, indem Sie das Logto SDK integrieren.
Einleitung
- Logto ist eine moderne Alternative zu Auth0 für den Aufbau von kundenorientierter Identitätsinfrastruktur mit minimalem Aufwand. Es unterstützt verschiedene Anmeldemethoden, einschließlich Benutzername, E-Mail, Telefonnummer und beliebte soziale Anmeldungen wie Google und GitHub.
- ASP.NET Core ist ein plattformübergreifendes, leistungsstarkes, Open-Source-Framework zum Erstellen moderner, cloudbasierter, internetverbundener Anwendungen.
In diesem Tutorial zeigen wir Ihnen, wie Sie einen Benutzerauthentifizierungsfluss mit ASP.NET Core erstellen, indem Sie das Logto SDK integrieren. Das Tutorial verwendet C# als Programmiersprache.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Logto-Konto. Wenn Sie keins haben, können Sie sich kostenlos anmelden.
- Eine .NET-Entwicklungsumgebung und ein ASP.NET Core-Projekt. Wenn Sie keins haben, können Sie .NET installieren und den ASP.NET-Tutorials folgen, um Ihr Projekt einzurichten.
Erstellen Sie eine Logto-Anwendung
Um zu beginnen, erstellen Sie eine Logto-Anwendung mit dem Typ "Traditionelles Web". Befolgen Sie diese Schritte, um eine Logto-Anwendung zu erstellen:
- Melden Sie sich bei der Logto-Konsole an.
- Klicken Sie in der linken Navigationsleiste auf Anwendungen.
- Klicken Sie auf Anwendung erstellen.
- Auf der geöffneten Seite finden Sie den Abschnitt "Traditionelle Web-App" und sehen die Karte "ASP.NET Core".
- Klicken Sie auf Erstellen starten und geben Sie den Namen Ihrer Anwendung ein.
- Klicken Sie auf Erstellen.
Danach sollten Sie ein interaktives Tutorial sehen, das Sie durch den Prozess der Integration von Logto SDK in Ihre ASP.NET Core-Anwendung führt. Der folgende Inhalt kann für eine zukünftige Referenz dienen.
Integration mit Logto SDK
Installation
Hinweis: Die Mindestversion von ASP.NET Core, die unterstützt wird, ist 6.0
.
Fügen Sie Logto Authentifizierung Middleware hinzu
Öffnen Sie Startup.cs
(oder Program.cs
) und fügen Sie den folgenden Code hinzu, um die Logto Authentifizierung Middleware zu registrieren:
Die AddLogtoAuthentication
Methode wird folgendes tun:
- Setzen Sie das Standard-Authentifierungsschema auf
LogtoDefaults.CookieScheme
. - Setzen Sie das Standard-Herausforderungsschema auf
LogtoDefaults.AuthenticationScheme
. - Setzen Sie das Standard-Abmelde-Schema auf
LogtoDefaults.AuthenticationScheme
. - Fügen Sie Cookie- und OpenID Connect-Authentifizierungshandlern dem Authentifizierungsschema hinzu.
Anmeldung
Fügen Sie die folgende URI zur Liste der Redirect URIs
in der Detailseite der Logto-Anwendung hinzu:
Um sich mit Logto anzumelden, können Sie die ChallengeAsync
Methode verwenden:
Die ChallengeAsync
Methode leitet den Benutzer zur Anmeldeseite von Logto um.
Die RedirectUri
Eigenschaft wird verwendet, um den Benutzer nach der Authentifizierung zurück zu Ihrer Webanwendung zu leiten. Beachten Sie, dass es sich von der Weiterleitungs-URI unterscheidet, die Sie auf der Detailseite der Logto-Anwendung konfiguriert haben:
- Die Weiterleitungs-URI auf der Detailseite der Logto-Anwendung ist die URI, zu der Logto den Benutzer nach der Anmeldung umleitet.
- Die
RedirectUri
Eigenschaft ist die URI, die umgeleitet wird, nachdem die notwendigen Aktionen in der Logto Authentifizierungs-Middleware durchgeführt wurden.
Die Reihenfolge der Aktionen ist 1 -> 2. Zur Klarheit nennen wir die Weiterleitungs-URI auf der Detailseite der Logto-Anwendung die Logto Weiterleitungs-URI und die RedirectUri
Eigenschaft die Anwendungsweiterleitungs-URI.
Die Logto Weiterleitungs-URI hat einen Standardwert von /Callback
, den Sie so belassen können, wenn es keine besonderen Anforderungen gibt. Wenn Sie es ändern möchten, können Sie die CallbackPath
Eigenschaft für LogtoOptions
einstellen:
Vergessen Sie nicht, den Wert auf der Detailseite der Logto-Anwendung entsprechend zu aktualisieren.
Abmeldung
Fügen Sie die folgende URI zur Liste der Post sign-out redirect URIs
auf der Detailseite der Logto-Anwendung hinzu:
Um sich mit Logto abzumelden, können Sie die SignOutAsync
Methode verwenden:
Die SignOutAsync
Methode löscht das Authentifizierungs-Cookie und leitet den Benutzer zur Abmeldeseite von Logto um.
Die RedirectUri
Eigenschaft wird verwendet, um den Benutzer nach der Abmeldung zurück zu Ihrer Webanwendung zu leiten. Beachten Sie, dass es sich von der Umleitungs-URI nach Abmeldung unterscheidet, die Sie auf der Detailseite der Logto-Anwendung konfiguriert haben:
- Die Weiterleitungs-URI nach Abmeldung auf der Detailseite der Logto-Anwendung ist die URI, zu der Logto den Benutzer nach der Abmeldung umleitet.
- Die
RedirectUri
Eigenschaft ist die URI, die umgeleitet wird, nachdem die notwendigen Aktionen in der Logto Authentifizierungs-Middleware durchgeführt wurden.
Die Reihenfolge der Aktionen ist 1 -> 2. Zur Klarheit nennen wir die Weiterleitungs-URI nach Abmeldung auf der Detailseite der Logto-Anwendung die Logto Weiterleitungs-URI nach Abmeldung und die RedirectUri
Eigenschaft die Anwendungs-Weiterleitungs-URI nach Abmeldung.
Die Logto Weiterleitungs-URI nach Abmeldung hat einen Standardwert von /SignedOutCallback
, den Sie so belassen können, wenn es keine besonderen Anforderungen gibt. Wenn Sie es ändern möchten, können Sie die SignedOutCallbackPath
Eigenschaft für LogtoOptions
einstellen:
Vergessen Sie nicht, den Wert auf der Detailseite der Logto-Anwendung entsprechend zu aktualisieren.
Implementieren Sie Anmelde-/Abmelde-Buttons (Razor Pages)
Zunächst fügen Sie die Handler-Methoden zu Ihrem PageModel
hinzu, zum Beispiel:
Dann fügen Sie die Buttons zu Ihrer Razor-Seite (html) hinzu:
<p>Ist authentifiziert: @User.Identity?.IsAuthenticated</p>
<form method="post">
@if (User.Identity?.IsAuthenticated == true)
{
<button type="submit" asp-page-handler="SignOut">Abmelden</button>
} else {
<button type="submit" asp-page-handler="SignIn">Anmelden</button>
}
</form>
Es zeigt den "Anmelden"-Button an, wenn der Benutzer nicht authentifiziert ist, und den "Abmelden"-Button, wenn der Benutzer authentifiziert ist.
Kontrollpunkt: Führen Sie die Webanwendung aus
Jetzt können Sie die Webanwendung ausführen und versuchen, sich mit Logto an- und abzumelden:
- Öffnen Sie die Webanwendung in Ihrem Browser, Sie sollten "Ist authentifiziert: False" und den "Anmelden"-Button sehen.
- Klicken Sie auf den "Anmelden"-Button und Sie sollten zur Anmeldeseite von Logto umgeleitet werden.
- Nachdem Sie sich angemeldet haben, sollten Sie zurück zur Webanwendung umgeleitet werden und Sie sollten "Ist authentifiziert: True" und den "Abmelden"-Button sehen.
- Klicken Sie auf den "Abmelden"-Button und Sie sollten zur Abmeldeseite von Logto umgeleitet werden und dann zurück zur Webanwendung.
Wenn Sie während der Integration auf Probleme stoßen, zögern Sie nicht, uns per E-Mail unter [email protected] zu kontaktieren oder unserem Discord-Server beizutreten!