После этого я хочу проверить этот токен и получить объект ClaimsPrincipal.
Я использую следующие библиотеки:
Код: Выделить всё
using Microsoft.IdentityModel.Tokens;
using System.IdentityModel.Tokens.Jwt;
Код: Выделить всё
var handler = new JwtSecurityTokenHandler();
var key = Encoding.ASCII.GetBytes(AuthSettings.PrivateKey);
var credentials = new SigningCredentials(
new SymmetricSecurityKey(key),
SecurityAlgorithms.HmacSha256Signature);
var claims = new List
{
new(JwtRegisteredClaimNames.Sub, user.Username),
new(JwtRegisteredClaimNames.Jti, user.ID.ToString()),
new(JwtRegisteredClaimNames.NameId, user.ID.ToString()),
new(ClaimTypes.NameIdentifier, user.ID.ToString()),
new(ClaimTypes.Role, user.UserPermitionLevel.ToString()),
};
var identity = new GenericIdentity(user.Username);
var claimsidentity = new ClaimsIdentity(identity, claims);
DateTime.UtcNow.AddMinutes(AuthSettings.ExpiryMinutes).ToString())
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = claimsidentity,
Expires = DateTime.UtcNow.AddMinutes(AuthSettings.ExpiryMinutes),
SigningCredentials = credentials,
};
var token = handler.CreateToken(tokenDescriptor);
var tk = handler.WriteToken(token);
var res1 = handler.ReadJwtToken(tk);
var res2 = handler.ReadToken(tk);
return handler.WriteToken(token);
Код: Выделить всё
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6Ik1GSSIsInN1YiI6Ik1GSSIsImp0aSI6IjEiLCJuYW1laWQiOlsiMSIsIjEiXSwicm9sZSI6IkFkbWluIiwibmJmIjoxNzI2MjEwOTA5LCJleHAiOjE3MjYyMTI3MDksImlhdCI6MTcyNjIxMDkwOX0.GHTv_n6W4M6qftQ2myv8vvLg8AqvUf40dG2e5_pZBlo
Код: Выделить всё
{
"unique_name": "MFI",
"sub": "MFI",
"jti": "1",
"nameid": [
"1",
"1"
],
"role": "Admin",
"nbf": 1726210909,
"exp": 1726212709,
"iat": 1726210909
}
Когда я сейчас читаю этот токен с помощью handler.ReadToken(tk) или с помощью handler.ReadJwtToken (tk) полезная нагрузка содержит только 4 элемента.

Утверждения также содержат только те же 4 элемента.
Я не понимаю, в чем я ошибаюсь.
Я много гуглил и использовал чат-gpt, но Wars не смог решить проблему самостоятельно.
Можете ли вы мне помочь?
Подробнее здесь: https://stackoverflow.com/questions/789 ... del-tokens