Mon AuthServer utilise actuellement le code suivant pour générer un JwtSecurityToken:
var token = new JwtSecurityToken(_issuer, audienceId, data.Identity.Claims, issued.Value.UtcDateTime, expires.Value.UtcDateTime, signingKey);
var handler = new JwtSecurityTokenHandler();
var jwt = handler.WriteToken(token);
La charge utile ressemble à ceci:
{
"unique_name": "myUserName",
"sub": "myUserName",
"role": "API_User",
"iss": "Automation",
"aud": "099153c2625149bc8ecb3e85e03f0022",
"exp": 1486056731,
"nbf": 1483464731
}
J'aimerais ajouter des champs/propriétés personnalisés dans la charge de jeton, tels que ProfilePicURL, afin que la charge puisse ressembler à ceci:
{
"unique_name": "myUserName",
"sub": "myUserName",
"role": "API_User",
"iss": "Automation",
"aud": "099153c2625149bc8ecb3e85e03f0022",
"exp": 1486056731,
"nbf": 1483464731,
"profilePicture": "http://url/user.jpg"
}
Comment puis-je ajouter ces propriétés personnalisées et m'assurer que le jeton les contient?
JwtSecurityToken
expose une JwtPayload Payload { get; set;}
property. JwtPayload
dérive de Dictionary<string, object>
alors ajoutez-le simplement à la charge utile ...
var token = new JwtSecurityToken(_issuer, audienceId, data.Identity.Claims, issued.Value.UtcDateTime, expires.Value.UtcDateTime, signingKey);
token.Payload["profilePicture"] = "http://url/user.jpg"
var handler = new JwtSecurityTokenHandler();
var jwt = handler.WriteToken(token);
Voici un tutoriel qui montre comment générer un JWT personnalisé en C #: https://auth0.com/docs/tutorials/generate-jwt-dotnet
Et voici l'exemple de code: https://github.com/auth0/auth0.net/tree/master/examples/GenerateJWT/GenerateJWT
Cordialement, Sagar