0

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

流程是这样的:

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

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

有人建议我们可以将人们发送到密码重置页面。但这似乎也不理想,因为他们必须验证他们的电子邮件地址,即使我们只是验证了它。毕竟,他们通过收到电子邮件开始了流程。

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

4

2 回答 2

1

如果您想使用自定义策略,您可以使用密码重置流程,该流程具有:

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

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

于 2019-06-12T21:24:44.980 回答
1

类似的问题已经回答了@如何将电子邮件建议传递给 Azure AD B2C 注册页面。回答https://stackoverflow.com/a/56503578/341185描述了如何发送邀请。

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

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

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

脚步:

  1. 在自定义策略中启用 Javascript https://docs.microsoft.com/en-us/azure/active-directory-b2c/javascript-samples
  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 = 新的 URLSearchParams(window.location.search);
document.getElementById("email").value = urlParams.get('email_hint');

单击此处获取示例请求

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

于 2019-06-13T07:58:58.710 回答