Получение «Неверной подписи», когда я пытался просмотреть сведения о токене на JWT.io.
Проверенные решения:
- Использование ключа в кодировке Base64 в качестве секретного.
- Установка/снятие флажка «секрет в кодировке Base64».
- Преобразование секрета jwt в base64 в файле Appsettings.json.
Заранее спасибо

Проблема

Снимки кода
private string CreateJWTToken(User user)
{
List claims = new List{
new Claim(ClaimTypes.Name, user.UserName)
// new Claim(ClaimTypes.Role,"AssignSomeRole"),
};
var SymmetricKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(_configuration.GetSection("JWT:secret").Value!));
var SigningCredentials = new SigningCredentials(SymmetricKey, SecurityAlgorithms.HmacSha256Signature);
var JwtTokenForUser = new JwtSecurityToken(
issuer: "http://localhost:5255",
audience: "",
claims: claims,
null,
expires: DateTime.Now.AddDays(1),
signingCredentials: SigningCredentials
);
var jwt = new JwtSecurityTokenHandler().WriteToken(JwtTokenForUser);
return jwt;
}
В файле Program.cs:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(
builder.Configuration.GetSection("JWT:secret").Value!))
};
});
AppSetting.json следующим образом:
"JWT": {
"secret": "trytrytrytrytrytrytrytrytrytrytrytrytrytrytrytry",
"issuer": "http://localhost:5255",
"audience": "http://localhost:5255"
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... o-debugger