Heim >Backend-Entwicklung >C++ >Wie implementiert man eine tokenbasierte Authentifizierung mit AngularJS und ASP.NET Core?

Wie implementiert man eine tokenbasierte Authentifizierung mit AngularJS und ASP.NET Core?

Susan Sarandon
Susan SarandonOriginal
2024-12-26 09:12:10528Durchsuche

How to Implement Token-Based Authentication with AngularJS and ASP.NET Core?

Tokenbasierte Authentifizierung in 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn