TeamsSSOTokenExchangeMiddleware class

如果活动名称为 signin/tokenExchange,则此中间件将尝试交换令牌,并删除传入调用,确保只处理一个交换请求。 如果用户登录到多个 Teams 客户端,机器人可能会从每个客户端接收“signin/tokenExchange”。 特定用户登录的每个令牌交换请求将具有相同的 activity.value.id。

机器人只应处理其中一个令牌交换请求。 其他人返回 StatusCodes.PRECONDITION_FAILED。 对于生产中的分布式机器人,这需要分布式存储,确保只处理一个令牌交换。 此中间件支持在 botbuilder-azure 或 MemoryStorage 中找到用于本地开发的 CosmosDb 存储。

构造函数

TeamsSSOTokenExchangeMiddleware(Storage, string)

初始化 TeamsSSOTokenExchangeMiddleware 类的新实例。

方法

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

每次机器人收到新请求时调用。

构造函数详细信息

TeamsSSOTokenExchangeMiddleware(Storage, string)

初始化 TeamsSSOTokenExchangeMiddleware 类的新实例。

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>