Я пытаюсь использовать ссылку на разговор, чтобы продолжить разговор с пользователем на моем бот-сервере Node. Я предполагаю, что этот разговор пытаются возобновить после истечения срока действия последнего полученного токена API. Когда я пытаюсь вызвать continueConversation
, который определен в botFrameworkAdapter.ts
в библиотеке ботбилдера (обратите внимание, что это не в пределах хода, поэтому от Teams не было получено никакого сообщения, так как срок действия ключа API истек), с моим URL-адресом службы как https://smba.trafficmanager.net/uk/, который то, что я сохранил в своей ссылке на разговор, я получаю несанкционированную ошибку.
Покопавшись в библиотеке ботбилдера, я сузил его до метода shouldSetToken
внутри microsoftAppCredentials.js
. Казалось бы, проблема в том, что https://smba.trafficmanager.net/uk/ не является доверенным именем хоста, и в результате коннектор не пытается получить новый токен для использования.
Я могу убедиться, что изменение метода shouldSetToken
так, чтобы он всегда возвращал true, решает мою проблему, но каков правильный подход к этому, не связанный с изменением библиотеки?
На данный момент мне удалось обойти это с помощью MicrosoftAppCredentials.trustServiceUrl(serviceUrl)
. Если есть лучший подход, было бы здорово его услышать.
Правильно. ServiceUrl исходит от нашей серверной службы, которая поддерживает диалоги с ботами.
@BillBliss-MSFT спасибо, Билл, я предполагаю, что можно доверять любому сервисному URL, который я получаю внутри TurnContext, и что невозможно подделать какой-либо вредоносный URL?