![](/img/trans.png)
[英]How to integrate swagger with Azure Active Directory OAuth
[英]How to integrate Oauth authentication into a Active learning bot
我正在从Microsoft机器人存储库中提供的示例中构建一个主动学习的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
过程实际上需要两个瀑布步骤,所以您必须同时PromptStepAsync
和LoginStepAsync
。 由于用户可能已经登录,因此OAuthPrompt
可能实际上并未结束转弯,在这种情况下, OAuthPrompt
会自动继续进行下一步而不提示。 我相信OAuthPrompt
旨在在每次您的机器人需要执行需要用户令牌的操作时使用,因此您可能需要在多个位置重复此模式。 请参阅文档以获取更多信息。
还请记住,如果您的机器人实际上并未调用任何需要令牌的API,而您只是想为自己进行身份验证,那么您可能希望在机器人中包含以某种方式验证令牌的逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.