Maison >développement back-end >C++ >Comment implémenter l'authentification basée sur les jetons dans ASP.NET Core ?
La mise en œuvre de l'authentification basée sur des jetons dans ASP.NET Core peut être un défi, en particulier lors de la transition à partir des versions précédentes de cadre. Cet article fournit des instructions détaillées sur la façon de configurer votre application WebApi pour l'authentification basée sur des jetons, en résolvant les problèmes courants et les mises à jour pour les versions .NET Core.
Configuration de démarrage
Dans Startup.cs, configurez vos services et ajoutez le code suivant dans la méthode ConfigureServices :
const string TokenAudience = "Myself"; const string TokenIssuer = "MyProject"; var claimsPrincipal = new System.Security.Claims.ClaimsPrincipal(new[] { new System.Security.Claims.ClaimsIdentity(new[] { new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name, "Demo User") }) }); public string BuildJwt() { var keySecret = authenticationConfiguration["JwtSigningKey"]; var symmetricKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(keySecret)); var creds = new SigningCredentials(symmetricKey, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: TokenIssuer, audience: TokenAudience, claims: claimsPrincipal.Claims, expires: DateTime.Now.AddMinutes(20), signingCredentials: creds ); return new JwtSecurityTokenHandler().WriteToken(token); }
Ensuite, configurez le pipeline d'authentification dans la méthode Configure méthode :
app.UseAuthentication(); app.UseAuthorization();
Utiliser un middleware d'authentification
Assurez-vous que le middleware app.UseAuthentication() est placé avant tout middleware nécessitant des informations utilisateur, tel que app.UseMvc( ). Cela vérifiera la présence d'un jeton Bearer dans l'en-tête d'autorisation.
Politique d'autorisation (facultatif)
Si vous le souhaitez, spécifiez une politique d'autorisation pour restreindre l'accès à certains contrôleurs ou actions. uniquement pour les jetons porteur :
services.AddAuthorization(auth => { auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder() .AddAuthenticationTypes(JwtBearerDefaults.AuthenticationType) .RequireAuthenticatedUser().Build()); });
Génération du Jeton
Pour générer le jeton pour l'authentification, utilisez la méthode BuildJwt définie précédemment. Par exemple, dans une action du contrôleur :
[HttpPost] public string AnonymousSignIn() { return BuildJwt(); }
Test et validation
Obtenir le token et valider sa signature à l'aide d'un outil comme jwt.io, en utilisant le secret clé spécifiée dans AuthenticationConfiguration.
En suivant attentivement ces instructions, vous pouvez implémenter avec succès l'authentification basée sur des jetons dans votre application ASP.NET Core WebApi et sécurisez efficacement vos points de terminaison API.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!