Heim >Backend-Entwicklung >C++ >Wie implementiert man eine tokenbasierte Authentifizierung mit AngularJS und ASP.NET Core?
Szenario:
Eine AngularJS-Anwendung fordert ein Token von einer WebApi an Bereitstellung von Benutzername und Passwort. Nach erfolgreicher Autorisierung gibt die WebApi ein Zugriffstoken zur Verwendung durch die AngularJS-App in nachfolgenden Anfragen zurück.
Konfiguration:
Startup.cs:
Authentifizierung konfigurieren Dienste:
services.AddTransient(_ => new JwtSignInHandler(symmetricKey)); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(options => { options.TokenValidationParameters.ValidateIssuerSigningKey = true; options.TokenValidationParameters.IssuerSigningKey = symmetricKey; options.TokenValidationParameters.ValidAudience = JwtSignInHandler.TokenAudience; options.TokenValidationParameters.ValidIssuer = JwtSignInHandler.TokenIssuer; });
Middleware:
app.UseAuthentication();
Autorisierungsrichtlinie (optional):
services.AddAuthorization(auth => { auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder() .AddAuthenticationTypes(JwtBearerDefaults.AuthenticationType) .RequireAuthenticatedUser().Build()); });
Token-Generierung:
public class JwtSignInHandler { public string BuildJwt(ClaimsPrincipal principal) { // Create credentials and token var token = new JwtSecurityToken( issuer: TokenIssuer, audience: TokenAudience, claims: principal.Claims, expires: DateTime.Now.AddMinutes(20), signingCredentials: creds ); return new JwtSecurityTokenHandler().WriteToken(token); } } [HttpPost] public string AnonymousSignIn([FromServices] JwtSignInHandler tokenFactory) { // Create claims principal var principal = new ClaimsPrincipal(new[] { new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, "Demo User") }) }); return tokenFactory.BuildJwt(principal); }
Das obige ist der detaillierte Inhalt vonWie implementiert man eine tokenbasierte Authentifizierung mit AngularJS und ASP.NET Core?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!