Frage:
So implementieren Sie tokenbasierte Authentifizierung in einem ASP.NET Core-Anwendung, bei der ein AngularJS-Client durch Bereitstellung von Anmeldeinformationen ein Token anfordert und die WebApi den Benutzer validiert und einen Zugriff zurückgibt Token?
Antwort:
1. Konfiguration in Startup.cs:
Erstellen Sie Konstanten für TokenAudience und TokenIssuer.
Fügen Sie Abhängigkeitsinjektionsdienste für den JWT-Signaturschlüssel und den JwtSignInHandler hinzu.
Konfigurieren Sie ASP .NET Core verwendet die JWT-Bearer-Authentifizierung und gibt die Token-Validierung an Parameter.
2. Authentifizierungs-Setup:
Verwenden Sie app.UseAuthentication() vor Middleware, die eine Authentifizierung erfordert.
3. Autorisierungsrichtlinie:
Fügen Sie eine Autorisierungsrichtlinie hinzu, um Controller und Aktionen anzugeben, die Bearer-Tokens erfordern.
4. Erstellen des Tokens:
Erstellen Sie eine JwtSignInHandler-Klasse mit einer Methode zum Erstellen eines JWT und übergeben Sie einen ClaimsPrincipal.
Verwenden Sie in dem Controller, in dem das Token benötigt wird, den JwtSignInHandler-Dienst, um Erstellen Sie ein Token basierend auf dem Prinzipal.
5. Testen:
Besorgen Sie sich ein Token und validieren Sie es bei jwt.io mit dem geheimen Schlüssel aus der Konfiguration.
Hinweis zum .Net Core 3.1-Update:
Eine vereinfachte Implementierung von finden Sie in der Beispielanwendung von David Fowler JWT.
Hinweis zum .Net Core 2 Update:
RSA-Schlüssel sind zwar nicht erforderlich, werden aber für verteilte Systeme empfohlen. Bei einer Verteilung der Verantwortung kann jedoch SymmetricSecurityKey verwendet werden.
Das obige ist der detaillierte Inhalt vonWie implementiert man eine tokenbasierte Authentifizierung in ASP.NET Core mit einem AngularJS-Client?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!