Настройка представления ответа form_post в IdentityServer4 - PullRequest
1 голос
/ 13 июля 2020

Я использую IdentityServer4, и я хотел бы добавить какой-то простой визуальный индикатор загрузки, когда пользователь авторизуется / перенаправляется с использованием режима ответа «form_post».

Когда используется маршрут подключения / авторизации вызывается с режимом ответа "form_post", он возвращает пустую страницу с формой, которая отправляется, поэтому я пытаюсь понять, как добавить на эту страницу какой-нибудь собственный html.

I обнаружил эту проблему для IdentityServer3, которая охватывает мой конкретный вариант использования , но я не нахожу, как реализовать это в IdentityServer4, поскольку он не использует структуру ViewService, которую использует 3.

Я начал свой путь настраиваемого генератора ответов на авторизацию взаимодействия, но если я перенаправляю отсюда на настраиваемое представление, но я не уверен, как должно выглядеть это настраиваемое представление для обработки части процесса отправки формы.

public class CustomAuthorizeInteractionResponseGenerator : AuthorizeInteractionResponseGenerator
{
    //...

    public override async Task<InteractionResponse> ProcessInteractionAsync(ValidatedAuthorizeRequest request, ConsentResponse consent = null)
    {
        var interactionResponse = await base.ProcessInteractionAsync(request, consent);

        if (interactionResponse.IsLogin ||
            interactionResponse.IsError ||
            interactionResponse.IsConsent)
        {
            return interactionResponse;
        }

        if (request.ResponseMode == "form_post")
        {
            return new InteractionResponse
            {
                RedirectUrl = "/custom_form_post"
            };
        }

        return interactionResponse;
    }
}

1 Ответ

1 голос
/ 27 июля 2020

Эта страница жестко запрограммирована в IdentityServer, а код для нее находится в классе AuthorizeResult.cs .

Так что, я полагаю, настроить ее будет сложно, если вы не перекомпилируете IdentityServer самостоятельно.

Другой вариант, возможно, может заключаться в настройке экрана согласия и отображении чего-либо для пользователя до того, как эта страница будет возвращена.

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