Пустой экран проверки подлинности бота Microsoft team

Попытка настроить поток аутентификации для аутентификации бота на основе этот документ.

Я запутался во многих вещах: похоже, что процесс аутентификации для командных ботов Microsoft отличается от потока аутентификации фреймворка ботов. У одного есть обратные вызовы и карточки входа, а у другого - какой-то диалог?

  1. Я понимаю, что команды откроют всплывающее окно на моем сайте авторизации, а затем мой сайт авторизации в какой-то момент вызовет notifySuccess. Но как пакет npm команды Microsoft знает, где выполнить авторизацию / notifySuccess? Не похоже, что пакет требует какого-либо идентификатора чата или идентификатора бота. пример < / а>

  2. Я могу отправить обратно карту входа

    let signinCard = CardFactory.heroCard(
          'Click below to sign in',
          null,
          [
              {
                  type: ActionTypes.Signin,
                  value: 'https://localhost:4200/bot/auth/login',
                  title: 'Sign in'
              }
          ])
    await context.sendActivity({ attachments: [signinCard] });

Проявить действительные домены

  "validDomains": [
    "localhost",
    "*.ngrok.io",
    "token.botframework.com"
  ]

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

Очень признателен, если кто-то знает, что мне не хватает


person Leon    schedule 12.01.2021    source источник
comment
загрузите свой манифест validDomains   -  person roa    schedule 12.01.2021
comment
@StefanWang Обновленный пост с допустимыми доменами   -  person Leon    schedule 12.01.2021


Ответы (1)


  1. Ваша страница входа открывается в iframe внутри Teams. И microsoftTeams.js взаимодействует с Teams. Это позволит Teams узнать, что ваш веб-сайт отправил уведомление об успешном завершении.

  2. Причина пустого экрана - неверный validDomains в файле манифеста. localhost:4200 следует включить в validDomains.

person roa    schedule 12.01.2021
comment
Спасибо, Стефан! локальный хост уже был в доменах, и даже с портом он не работал. Однако вы вдохновили меня попробовать еще раз, но туннелировали через ngrok, и это сработало! :) - person Leon; 12.01.2021
comment
@Leon ngrok всегда будет работать, поскольку он сертифицирован по SSL. Вам следует посетить сертификат localhost в связке ключей, если вы собираетесь использовать localhost напрямую. - person roa; 12.01.2021
comment
Попался, я изучу сертификат localhost, и правильно ли сказать, что после проверки notifySuccess токен будет сохранен и использоваться для всех вызовов, которые проходят через одни и те же конечные точки. - person Leon; 12.01.2021
comment
Вы должны обработать токен в localStorage настроек microsoftTeams и проверить, действителен ли он. - работают так же, как токены на обычном сайте. - person roa; 12.01.2021