Я пытаюсь выполнить перенаправление на экран входа в систему, если аутентификация JwtBearer не удалась. Проблема в том, что я хочу, чтобы это происходило только во время запросов GET, запросы POST / PUT / DELETE должны нормально обрабатывать ошибку 401
Ранее вы могли делать что-то вроде
context.HandleResponse();
context.Response.Redirect("/login");
return Task.FromResult(0);
Однако HandleResponse () не существует на JwtBearer.AuthenticationFailedContext
в .net core 2.X, и, очевидно, следующий код ничего не делает, не вызывая его. Есть ли документированный способ справиться с этим?
startup.cs
options.Events = new JwtBearerEvents {
OnAuthenticationFailed = context => {
if (context.Request.Method.Equals("GET")) {
context.Response.Redirect("/login");
return Task.FromResult(0);
}
return Task.CompletedTask;
}