繁体   English   中英

如何将Oauth身份验证集成到主动学习机器人中

[英]How to integrate Oauth authentication into a Active learning bot

我正在从Microsoft机器人存储库中提供的示例中构建一个主动学习的bot,尤其是以下示例:

https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/48.qnamaker-active-learning-bot

我还能够测试和验证使用Graph api进行身份验证和标识用户名的示例,特别是通过以下示例: https : //github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/ 24.机器人身份验证图

但是我无法将它们整合在一起。

我看到我必须添加PromptStepAsync,但是我没有看到可以添加到活动学习bot示例中的相关位置。

AddDialog(new OAuthPrompt(
    nameof(OAuthPrompt),
    new OAuthPromptSettings
    {
        ConnectionName = ConnectionName,
        Text = "Please login",
        Title = "Login",
        Timeout = 300000, // User has 5 minutes to login
    }));

我尝试将PromptStepAsync更改为以下内容并将其添加到DialogHelper.cs中,但出错

private async Task<DialogTurnResult> PromptStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
    //return await stepContext.BeginDialogAsync(nameof(OAuthPrompt), null, cancellationToken);
    return await stepContext.PromptAsync(
    nameof(OAuthPrompt),
        new OAuthPromptSettings
        {
            ConnectionName = "abc",
            Text = "Please login",
            Title = "Login",
            Timeout = 300000, // User has 5 minutes to login
        }
    , cancellationToken);
}

我最终计划仅回答通过身份​​验证的用户的问题。 感谢您的帮助或指导。

请记住,认证样品中OAuthPrompt过程实际上需要两个瀑布步骤,所以您必须同时PromptStepAsyncLoginStepAsync 由于用户可能已经登录,因此OAuthPrompt可能实际上并未结束转弯,在这种情况下, OAuthPrompt会自动继续进行下一步而不提示。 我相信OAuthPrompt旨在在每次您的机器人需要执行需要用户令牌的操作时使用,因此您可能需要在多个位置重复此模式。 请参阅文档以获取更多信息。

还请记住,如果您的机器人实际上并未调用任何需要令牌的API,而您只是想为自己进行身份验证,那么您可能希望在机器人中包含以某种方式验证令牌的逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM