У меня есть аутентификация токена на предъявителя, работающая с OpenIddict 3.0. Когда клиент обращается к авторизованному контроллеру с отсутствующим токеном, я хочу, чтобы он возвратил код ошибки 401 Несанкционированный, а не 400 Плохой запрос.
Это то, откуда приходит сообщение об ошибке, но откуда берется код состояния http и как я переопределил бы это?
OpenIddictValidationHandlers.cs
public ValueTask HandleAsync([NotNull] ProcessAuthenticationContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
if (string.IsNullOrEmpty(context.Request.AccessToken))
{
context.Logger.LogError("The request was rejected because the access token was missing.");
context.Reject(
error: Errors.InvalidRequest,
description: "The access token is missing.");
return default;
}
context.Token = context.Request.AccessToken;
return default;
}
И мои Startup.cs
...
var openId = services.AddOpenIddict()
...
.AddValidation(config =>
{
config.UseLocalServer();
config.UseAspNetCore();
});