Как получить код пользователя для потока кода устройства на сервере идентификации 4 - PullRequest
1 голос
/ 30 апреля 2020

Я пытаюсь использовать Device Code Flow, который уже реализован в IdentityServer4, но в документации я не смог найти ничего полезного о Device Code Flow. Я нашел пример потока кода устройства, но я не понимаю, что такое код пользователя, как его получить или сохранить.

Вот базовый c сервис, который используется для получения контекста авторизации. .

    private readonly IDeviceFlowInteractionService _interaction;

    public DeviceController(
        IDeviceFlowInteractionService interaction)
    {
        _interaction = interaction;
        _clientStore = clientStore;
        _resourceStore = resourceStore;
        _events = eventService;
        _logger = logger;
    }

    private async Task<DeviceAuthorizationViewModel> BuildViewModelAsync(string userCode, DeviceAuthorizationInputModel model = null)
    {
        var request = await _interaction.GetAuthorizationContextAsync(userCode);
        // Some code ...
        return null;
    }

Как вы можете видеть выше, я использую GetAuthorizationContext, у которого есть параметр userCode, но я не понял, как получить этот код? или где его сохранить. В документации я ничего не нашел о UserCode.

1 Ответ

1 голос
/ 30 апреля 2020

Вот пример приложения , созданного одним из сопровождающих IdentityServer, показывающий, как использовать поток устройств.

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

Затем пользователь может ввести код в веб-приложении для отправки в DeviceController Вы построили выше.

...