Bersiaplah aplikasi Teras ASP.NET di mana anda ingin melaksanakan berasaskan token pengesahan untuk aplikasi AngularJS. Aplikasi AngularJS akan membuat permintaan ke URL tertentu yang menghantar nama pengguna dan kata laluan. API Web akan membenarkan pengguna dan mengembalikan token akses, yang akan digunakan oleh apl AngularJS dalam permintaan seterusnya.
Untuk mengkonfigurasi aplikasi API Web Teras ASP.NET anda untuk berasaskan token pengesahan:
Buat pemalar untuk khalayak dan pengeluar token:
const string TokenAudience = "Myself"; const string TokenIssuer = "MyProject";
Dalam fail Startup.cs anda, tambahkan yang berikut pada kaedah ConfigureServices:
var keySecret = authenticationConfiguration["JwtSigningKey"]; var symmetricKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(keySecret)); 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; });
Tambah baris berikut dalam fail Startup.cs anda, sebelum sebarang perisian tengah yang memerlukan maklumat pengguna:
app.UseAuthentication();
Buat kelas untuk mengendalikan penjanaan token JWT:
class JwtSignInHandler { public const string TokenAudience = "Myself"; public const string TokenIssuer = "MyProject"; private readonly SymmetricSecurityKey key; public JwtSignInHandler(SymmetricSecurityKey symmetricKey) { this.key = symmetricKey; } public string BuildJwt(ClaimsPrincipal principal) { var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: TokenIssuer, audience: TokenAudience, claims: principal.Claims, expires: DateTime.Now.AddMinutes(20), signingCredentials: creds ); return new JwtSecurityTokenHandler().WriteToken(token); } }
Dalam tindakan pengawal di mana anda ingin memulangkan token, panggil kaedah BuildJwt:
[HttpPost] public string AnonymousSignIn([FromServices] JwtSignInHandler tokenFactory) { var principal = new System.Security.Claims.ClaimsPrincipal(new[] { new System.Security.Claims.ClaimsIdentity(new[] { new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name, "Demo User") }) }); return tokenFactory.BuildJwt(principal); }
Dengan langkah ini, API Web Teras ASP.NET anda aplikasi akan dikonfigurasikan untuk menggunakan pengesahan berasaskan token, membolehkan aplikasi AngularJS anda mengakses sumber yang dilindungi dengan selamat.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengesahan Berasaskan Token dalam Teras ASP.NET untuk Aplikasi AngularJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!