[英]Using Azure AD B2C with Bot
我在 Azure 中創建了一個機器人,它使用SignInCard
為用戶提供登錄或注冊為客戶的選項。 這是我目前擁有的SignInCard
:
messageActivity.Attachments.Add(new SigninCard()
{
Buttons = new List<CardAction>()
{
new CardAction()
{
Title = "Log in here",
DisplayText = "Log in here",
Value = "https://login.microsoftonline.com/XXXXXXXX.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_SiUp&client_id=XXXXX-XXXX-XXXX-XXXX-XXXXXXXd&nonce=defaultNonce&redirect_uri=http%3A%2F%2Flocalhost%3A3980%2Fapi%2Flogin&scope=openid&response_type=id_token&prompt=login",
Text = "Sign in/Register",
Type = ActionTypes.Signin,
}
}
}.ToAttachment());
機器人正確顯示卡,當我單擊它時,它會打開帶有正確提供程序的瀏覽器,效果很好(我可以登錄和注冊)。
最后,我有一個 Web API,其中LoginController
映射到我的返回 URL (即 localhost:3980/api/login)。
為了驗證返回 URL 是否被調用,我在LoginControl.Get
放置了一個斷點:
public class LoginController : ApiController
{
[HttpGet]
public IHttpActionResult Get()
{
return Ok(); //The breakpoint here is hit!
}
}
登錄后,Get 方法在斷點被命中時被調用,但是接下來會發生什么? 我不知道如何繼續。
我發現的唯一想法是,Azure B2C AD 使用如下 URL 調用LoginController.Get
方法:
http://localhost:3980/api/login#id_token=eyJ0eXAi ...
我猜是那個 URL 被調用,因為它顯示在我瀏覽器的地址欄中。
所以,它正在發送一個叫做“id_token”的東西,但在 Controller.Get 方法中,我似乎無法訪問它。
id_token 是什么? 如何獲得?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.