L’authentification JWT est un mécanisme d'authentification sans état basé sur un jeton. Il est couramment utilisé et il est généralement encodé et signé. Mais comment le décoder ? Voyons ce qu’il en est en C#.
Ci-dessous, je décrirai une méthode simple pour lire l’en-tête Authorization contenant un jeton JWT pour en extraire une information.
publicstaticstringGetInformationFromToken(HttpContextcontext,stringdataProp){vartoken=GetJwtTokenFromRequest(context);if(string.IsNullOrEmpty(token)){//le jeton est videreturnnull;}try{vartokenHandler=newJwtSecurityTokenHandler();tokenHandler.ValidateToken(token,newTokenValidationParameters{ValidateIssuerSigningKey=true,ValidateIssuer=false,ValidateAudience=false},outSecurityTokenvalidatedToken);varjwtToken=(JwtSecurityToken)validatedToken;//le JwtSecurityToken contient une propriété "Claims" dont vous extrayez une propriété de données que vous voulez lirevartargetInfo=jwtToken.Claims.FirstOrDefault(c=>c.Type==dataProp);if(targetInfo!=null){returntargetInfo.Value;}returnnull;}catch(Exceptione){// Validation du Token a échouéreturnnull;}}
L’usage
Ensuite, il suffit d’appeler JwtTokenHelper comme suit :