如何使用上下文.GetUserTokenAsync in Bot Framework 4.0?(或某些中间件身份验证)



我们正在将机器人转换为机器人框架 4.0,但发现了一个问题...... 为了获取机器人的当前用户,我们调用上下文。GetUserTokenAsyn 从登录名中获取令牌,这是通过 Azure AD 完成的。令牌包含从外部系统检索数据所需的数据。 现在。。。Bot Framework 4.0 有一个 ITurnContext,它有一个 Activity.Context,但不幸的是,它的类型是 DialogContext,而不是具有 GetUserTokenAsync 的 IDialogContext。

有谁知道如何在4.0中使用GetUserTokenAsync,或者是否有一些中间件可用于身份验证(检索身份验证令牌(?

//汤米

此函数存在于 v4 中,并以类似的方式运行,但需要一个额外的步骤。调用 GetUserTokenAsync 将如下所示:

var client = CreateOAuthApiClient(context);
var token = client.GetUserTokenAsync("<userid>", "<connectionname>", "<magicCode>");  

在此之后,令牌将正常运行。 下面是代码中的一个示例,尽管它位于 v4 SDK 本身中。

如果您想获得带有幻数的令牌,您也可以尝试这样做:

var tokenResponse = await (turnContext.Adapter as IUserTokenProvider).GetUserTokenAsync(turnContext, _connectionName, magicCode, cancellationToken: cancellationToken);

您可以在此处找到示例。

最新更新