Поделиться через


TeamsSSOTokenExchangeMiddleware class

Если имя действия — signin/tokenExchange, это ПО промежуточного слоя попытается обменять маркер и дедупликировать входящие вызовы, гарантируя обработку только одного запроса exchange. Если пользователь вошел в несколько клиентов Teams, бот может получить "signin/tokenExchange" от каждого клиента. Каждый запрос на обмен маркерами для определенного имени входа пользователя будет иметь идентичные activity.value.id.

Только один из этих запросов на обмен токенами должен обрабатываться ботом. Остальные возвращают StatusCodes.PRECONDITION_FAILED. Для распределенного бота в рабочей среде это требует распределенного хранилища, гарантирующего обработку только одного обмена маркерами. Это ПО промежуточного слоя поддерживает хранилище CosmosDb, найденное в botbuilder-azure или MemoryStorage для локальной разработки.

Конструкторы

TeamsSSOTokenExchangeMiddleware(Storage, string)

Инициализирует новый экземпляр класса TeamsSOTokenExchangeMiddleware.

Методы

onTurn(TurnContext, () => Promise<void>)

Вызывается каждый раз, когда бот получает новый запрос.

Сведения о конструкторе

TeamsSSOTokenExchangeMiddleware(Storage, string)

Инициализирует новый экземпляр класса TeamsSOTokenExchangeMiddleware.

new TeamsSSOTokenExchangeMiddleware(storage: Storage, oAuthConnectionName: string)

Параметры

storage

Storage

хранилища для дедупликации

oAuthConnectionName

string

Имя подключения, используемое для обмена маркерами единого входа

Сведения о методе

onTurn(TurnContext, () => Promise<void>)

Вызывается каждый раз, когда бот получает новый запрос.

function onTurn(context: TurnContext, next: () => Promise<void>): Promise<void>

Параметры

context

TurnContext

Контекст для текущего шага беседы с пользователем.

next

() => Promise<void>

Функция для вызова продолжения выполнения на следующем шаге в цепочке ПО промежуточного слоя.

Возвращаемое значение

Promise<void>