using System; using System.IdentityModel.Tokens.Jwt; using System.Text; using Microsoft.IdentityModel.Tokens; namespace SchotzIadKmTracker.Tests.Auth; /// /// Utilitaires de validation de jetons JWT pour les tests, alignés sur les /// paramètres de validation de Program.cs (issuer / audience / clé de /// signature / durée de vie). /// internal static class JwtTestUtils { /// /// Valide un jeton HS256 avec la clé fournie. Retourne true si le jeton /// est signé par cette clé, non expiré et porte l'issuer/audience attendus. /// public static bool EstValide( string token, string secretKey, string issuer = "SchotzIadKmTracker", string audience = "SchotzIadKmTracker") { var handler = new JwtSecurityTokenHandler(); var parameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = issuer, ValidAudience = audience, IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)), ClockSkew = TimeSpan.FromSeconds(30), }; try { handler.ValidateToken(token, parameters, out _); return true; } catch { return false; } } }