.AddIdentityServerAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme, (IdentityServerAuthenticationOptions options) =>
{
options.JwtBearerEvents.OnChallenge = ? // What does this by default do? I can't find its source anywhere...
};
Если кто-то может пролить свет на это, я буду очень счастлив.
По какой-то причине, после того, как токен был аутентифицирован, после того, как он был проверен, этот метод вызывается, и по какой-то причине, если я не использую JwtBearerChallengeContext.HandleResponse()
, мне всегда возвращают 401 Несанкционированный.
Отсюда возникает вопрос - какова реализация по умолчанию, чтобы я не пропустил и не испортил что-то при реализации моего собственного Challenge
(с помощью свойства OnChallenge
), которое будет использовать JwtBearerChallengeContext.HandleResponse()
?
Это моя текущая реализация, не смотря на то, что изначально предполагалось сделать:
.AddIdentityServerAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme, (IdentityServerAuthenticationOptions options) =>
{
options.JwtBearerEvents.OnChallenge = context =>
{
if (context.AuthenticateFailure == null && context.Error == null
&& context.ErrorDescription == null && context.ErrorUri == null)
{
context.HandleResponse();
}
return Task.CompletedTask;
};
};
Не могу не волноваться, что я что-то пропустил, или сделал что-то неправильно.
РЕДАКТИРОВАТЬ: Я нашел этот там, но он не совсем показывает, что делает eventContext
сам. Я только знаю, что он передается реализацией пакета по умолчанию IdentityServer4.AccessTokenValidation
, который не может быть пустым методом (в противном случае, как мы видели в приведенном выше коде, аутентификация завершится неудачей.)