Я строю основной веб -API ASP.net с использованием аутентификации JWT. Конечная точка входа возвращает действительный токен (проверенный в jwt.io), но когда я пытаюсь получить доступ к защищенному маршруту, используя этот токен через почтальон, я продолжаю получать ошибку «http 401 несанкционированный».
Спасибо за ответы! Вот дополнительная информация по запросу: < /p>
Код: Выделить всё
* Token generation using `JwtSecurityTokenHandler`
* Validation in `Program.cs` using `AddAuthentication().AddJwtBearer()`
* Authorization attribute added to controller
* Key, issuer, audience and token lifetime set in `appsettings.json`
* Middleware setup: `app.UseAuthentication(); app.UseAuthorization();`
< /code>
🔍 Что я уже пробовал: < /p>
* Verified the token is correct (decoded properly)
* Copied it into the "Bearer Token" field in Postman Authorization tab
* Tried setting Authorization header manually with `Bearer `
* Confirmed the header is being sent via console log
* Tried using environment variable for the token in Postman
* Removed newline characters and ensured no hidden characters
< /code>
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6..."
}
< /code>
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = builder.Configuration["Jwt:Issuer"],
ValidAudience = builder.Configuration["Jwt:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]))
};
});
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = builder.Configuration["Jwt:Issuer"],
ValidAudience = builder.Configuration["Jwt:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]))
};
});
var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();
< /code>
"Jwt": {
"Key": "your_super_secure_very_long_key_1234569!",
"Issuer": "CarDiagnostics",
"Audience": "CarDiagnosticsUsers",
"TokenValidityMinutes": 15
}
< /code>
401. Не включает в себя www-authenticate заголовок, который является подозрительным. Вкладка «Авторизация» с носителем {{token}}
все еще получает 401 несанкционированный на защищенных конечных точках с [Authorize]. Есть идеи, чего могло пропустить?
Подробнее здесь: https://stackoverflow.com/questions/795 ... re-web-api