Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Pengesahan Berasaskan Token dengan AngularJS dan 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; });
Perisian Tengah:
app.UseAuthentication();
Dasar Kebenaran (pilihan):
services.AddAuthorization(auth => { auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder() .AddAuthenticationTypes(JwtBearerDefaults.AuthenticationType) .RequireAuthenticatedUser().Build()); });
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); }
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!