.NET Core 2.1 истек срок действия ответа токена JWT [Пост против Get] - PullRequest
0 голосов
/ 14 ноября 2018

Я реализовал аутентификацию токенов на предъявителя для проекта, и она работала нормально ... пока я не заметил, что, когда срок действия токена истек, API "get" возвращают "401 неавторизованным", как это должно быть, в то время как API "post" возвращают "404not found ".

В чем причина ответа на сообщение и как его исправить?

Конфигурация токена в Startup.cs

// add JWT authentication
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ClockSkew = TimeSpan.FromMinutes(5),
            ValidateIssuer = true,
            ValidateAudience = true,
            ValidateLifetime = true,
            ValidIssuer = Configuration["JWT:issuer"],
            ValidAudience = Configuration["JWT:audience"],
            IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes((string)Configuration["JWT:key"])),
             RequireSignedTokens = true,
             RequireExpirationTime = true
        };
    });

Тестирование API

[HttpGet]
[Route("api/test1")]
public IActionResult test1()
{
    return Ok("1");
}
[HttpPost]
[Route("api/test2")]
public IActionResult test2()
{
    return Ok("2");
}

Скриншот почтальона Postman screenshot

1 Ответ

0 голосов
/ 14 ноября 2018

Я обнаружил проблему.

Похоже, что использование нестандартных страниц с ошибками вызвало проблему.

app.UseStatusCodePagesWithReExecute("/Error/{0}");

Я вернул ее в исходную конфигурацию:

app.UseStatusCodePages();

и API почты начал возвращать 401.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...