При использовании доверенного источника в Direct Line OAuth ответ на токен не возвращается - PullRequest
0 голосов
/ 31 мая 2019

Кажется, я столкнулся с проблемой при использовании доверенных источников с OAuthPrompt (Generic Oauth2 w / ADB2C) и диалоговым окном водопада. Первый шаг - проверка подлинности пользователя, следующий - сбор ответа токена из результата контекста шага и продолжение. Все это прекрасно работает с магическим кодом.

public async Task<DialogTurnResult> EnsureUserAuthenticated(WaterfallStepContext sc, CancellationToken cancellationToken)
{
     return await sc.BeginDialogAsync(nameof(OAuthPrompt), null, cancellationToken);
}

public async Task<DialogTurnResult> AskForDateTime(WaterfallStepContext sc, CancellationToken cancellationToken)

{
     var tokenResponse = sc.Result as TokenResponse;
     ...
}

Я пробовал это локально и в Azure, и после закрытия окна браузера auth ничего не происходит. Вы должны повторно вызвать диалог водопада, чтобы получить ответ токена, возвращенный на 2-м шаге.

Этот бот появляется с помощью CDN WebChat.

Есть идеи, что может пойти не так?

1 Ответ

0 голосов
/ 31 мая 2019

Мне помогла эта ссылка: https://blog.botframework.com/2018/09/25/enhanced-direct-line-authentication-features/

Насколько я понимаю, по умолчанию WebChat защищен, поэтому ссылки для входа в OAuthCard не приводят к ответу "код подтверждения".Эмулятор использует элемент управления WebChat для отображения разговора с ботом.

Мы можем смоделировать магический токен в эмуляторе.Для этого убедитесь, что в настройках эмулятора установлен флажок «Использовать проверочный код для входа в OAuthCards». Если он работает внутри эмулятора, код отлично работает.

...