具有预邀请用户的Azure B2C

时间:2019-06-12 14:40:51

标签: azure azure-ad-b2c

我维护一个使用Azure AD B2C进行身份验证的应用程序。

流程是这样的:

  1. 通过电子邮件邀请用户
  2. 他们单击链接以使用B2C登录/注册流程进行注册
  3. 他们填写他们的信息,包括电子邮件地址
  4. 它们被重定向到我们的应用程序

现在,令我困扰的是,即使我们已经知道,用户也必须输入他们的电子邮件地址。我们只是使用他们的电子邮件地址邀请了他们。

suggested是我们可以将人们带到密码重设页面。但这也不是很理想,因为即使我们刚刚验证了电子邮件地址,他们也必须验证其电子邮件地址。毕竟,他们通过接收电子邮件开始流程。

在许多情况下,用户在要求输入电子邮件地址时会输入错误。这会带来很多新问题,因为我们现在为同一用户提供两个不同的电子邮件地址。

2 个答案:

答案 0 :(得分:1)

如果要使用自定义策略,则可以使用以下流程进行密码重置:

&client_assertion_type = urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer &client_assertion = JWT

这会将电子邮件地址放入JWT中,因此用户不必输入它。

答案 1 :(得分:1)

@ How to pass email suggestion to Azure AD B2C SignUp page已回答类似的问题。答案https://stackoverflow.com/a/56503578/341185描述了如何发送邀请。

在自定义策略中使用Javascript的替代方法

您可以将自定义策略与Javascript一起使用,以在电子邮件地址文本框中显示用户的电子邮件。

方法: 发送邀请链接时,发送一个额外的查询参数,例如 &email_hint=azureb2ccustomer@b2clogin.com ,然后按照以下步骤在电子邮件地址文本框中显示此email_hint值

步骤:

  1. 在自定义策略https://docs.microsoft.com/en-us/azure/active-directory-b2c/javascript-samples中启用JavaScript
  2. 更改页面协定以允许自定义策略运行javascript https://docs.microsoft.com/en-us/azure/active-directory-b2c/page-contract
  3. 更新SignupOrSignin用户旅程以直接进入“注册”页面https://stackoverflow.com/a/56503494/341185
  4. 更新您的Blob HTML页面以读取查询参数,并将值放在电子邮件文本框中
var urlParams = new URLSearchParams(window.location.search);
document.getElementById("email").value = urlParams.get('email_hint');

点击here以获取示例请求

如果您仍然需要除上述之外的其他方法来适应您的业务模型,请添加您的评论。