Własna odpowiedź API na brak autoryzacji

0

Korzystam w swoim API z atrybutów [Authorize()] do sprawdzenia czy token użytkownika jest poprawny i nie wygasł.

[Authorize(AuthenticationSchemes = "refresh")]
[HttpPost]
public async Task<ActionResult> RefreshToken()

I tutaj moje pytanie, jak mogę zedytować odpowiedź, gdy jest brak autoryzacji? Ten nagłówek zwraca kod 401 i pustą odpowiedź.

Próbowałem w pliku startup.cs zrobić podobnie jak z kodem 404, aby zwracano odpowiedź

app.Use(async (context, next) =>
            {
                await next();
                if (context.Response.StatusCode == 404)
                {
                    context.Request.Path = "/NotFound";
                    await next();
                }
            });
[Route("/NotFound")]
        public IActionResult NotFoundEndpoint() =>
            Utilities.ApiResponse.EndpointNotFound(this.HttpContext);

Jednakże dla kodu 401 powyższy sposób nie działa, dlatego szukam pomocy co tego problemu.
Może ktoś robił coś podobnego?

2

A 401 nie jest wystarczającą odpowiedzią?

4

Ogólnie to 401 powinno ci mówić wszystko ale skoro masz potrzebę podmiany odpowiedzi to najprościej jest nadpisać odpowiedź z defoultowej. Tutaj masz przykład jak to zrobić: https://stackoverflow.com/questions/64082588/asp-core-api-custom-unauthorized-body

1 użytkowników online, w tym zalogowanych: 0, gości: 1