![](/img/trans.png)
[英]Bot app not working from another User Role (Microsoft Bot Framework)
[英]Microsoft Bot Framework, How to authenticate user to login in web app
我怎樣才能讓用戶從 bot 登錄到我的網站,然后當用戶要求 bot 首先檢查用戶是否在我的網站上通過身份驗證,如果沒有重定向到網站登錄。 我已經在 bot 中使用登錄卡進行了登錄,並傳遞了 activity.user.id,但我不知道如何在用戶登錄或未登錄的情況下檢索信息。
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
Activity reply = activity.CreateReply($"Well hello there. What can I do for you today?");
await connector.Conversations.ReplyToActivityAsync(reply);
var id = activity.From.Id;
reply.Attachments = new List<Attachment>();
List<CardAction> cardButtons = new List<CardAction>();
CardAction plButton = new CardAction()
{
Value = $"http://myapp.azurewebsites.net/Account/Login?userid='{id}'",
Type = "signin",
Title = "Connect"
};
cardButtons.Add(plButton);
SigninCard plCard = new SigninCard("You need to authorize me", new List<CardAction>()
{ plButton });
Attachment plAttachment = plCard.ToAttachment();
reply.Attachments.Add(plAttachment);
var replyt = await connector.Conversations.SendToConversationAsync(reply);
您可以閱讀這篇文章https://tsmatz.wordpress.com/2016/09/06/microsoft-bot-framework-bot-with-authentication-and-signin-login/
和示例 github 代碼https://github.com/tsmatsuz/AuthDemoBot
當您的 Web 應用程序(網站)在瀏覽器中打開時,頁面將重定向到登錄 URL。 用戶登錄(登錄成功)后,您的 Web 應用程序可能會獲得一些經過身份驗證的安全令牌。 使用 Bot Framework api,您的 Web 應用程序將給定的令牌作為用戶狀態存儲到機器人狀態服務中。 (此時,用戶 id 用作標識符。)用戶可以關閉您的 Web 應用程序(Web 瀏覽器)。
最后,當用戶在您的機器人中輸入一些聊天內容時,您的機器人(在服務器端)可以從機器人狀態服務中檢索先前的令牌。 (從現在開始,這個機器人可以使用這個檢索到的令牌調用一些 api。)
圖片來源:松崎剛
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.