Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Melaksanakan Pengesahan Berasaskan Token dengan AngularJS dan Teras ASP.NET?

Bagaimana untuk Melaksanakan Pengesahan Berasaskan Token dengan AngularJS dan Teras ASP.NET?

Susan Sarandon
Lepaskan: 2024-12-26 09:12:10
asal
564 orang telah melayarinya

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

Pengesahan Berasaskan Token dalam Teras ASP.NET

Senario:

Aplikasi AngularJS meminta token daripada WebApi oleh menyediakan nama pengguna dan kata laluan. Selepas kebenaran berjaya, WebApi mengembalikan token akses untuk digunakan oleh apl AngularJS dalam permintaan seterusnya.

Konfigurasi:

Startup.cs:

Konfigurasikan pengesahan perkhidmatan:

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;
});
Salin selepas log masuk

Perisian Tengah:

app.UseAuthentication();
Salin selepas log masuk

Dasar Kebenaran (pilihan):

services.AddAuthorization(auth =>
{
    auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
        .AddAuthenticationTypes(JwtBearerDefaults.AuthenticationType)
        .RequireAuthenticatedUser().Build());
});
Salin selepas log masuk

Penjanaan Token:

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);
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengesahan Berasaskan Token dengan AngularJS dan Teras ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan