首页 > 解决方案 > 细分注册过程以允许稍后进行电子邮件验证

问题描述

我们将 Azure B2C 用于身份提供程序,但很明显,用户发现该过程有点笨拙。这主要是因为注册过程的同步性质。

我们确实想要验证电子邮件地址和 MFA 电话号码,但理想情况下不是在输入它们的时候。有没有办法我们可以利用图形 API 调用来处理这个问题,或者使用自定义策略来实现相同的目标?

在此处输入图像描述

我们还希望将注册/登录过程明确分开。这样用户可以直接被引导到这些页面,并且它们也可以被标记。

标签: azure-ad-b2c

解决方案


您可能可以使用两个自定义策略来实现这一点:

  1. 一种注册策略,提示新客户输入电子邮件地址和电话号码,并创建一个新用户并将这些标记为未验证。可以在帐户创建步骤调用此自定义策略。
  2. 一种验证策略,通过内置电子邮件验证未经验证的电子邮件地址,然后通过内置电话或短信验证未经验证的电话号码。可以在“应用程序完成”步骤调用此自定义策略。

请注意,发送验证码的不是注册策略,而是发送验证码的验证策略。我不知道这对于所需体验是否可以接受,但发送验证码的自定义策略必须与验证它的策略相同。

(有一个替代流程,在注册策略完成后,您的最终应用程序会发送一封自定义电子邮件,其中包含一个验证链接,当最终用户打开该链接时,您的最终应用程序会验证该链接,然后验证策略 -减去电子邮件验证步骤,因为电子邮件地址已经被验证 - 开始)。

如果您对这个提议的解决方案感兴趣,那么我可以尝试提供基于自定义策略启动包之一的自定义策略的完整详细信息。

更新于 2019 年 2 月 15 日

我已将以下自定义策略示例发布到此 GitHub 存储库。第二和第三个政策执行上述流程。

注册登录

使用电子邮件地址电话号码注册本地帐户。提示最终用户验证电子邮件地址和电话号码。

使用电子邮件地址电话号码登录本地帐户。如果尚未验证电子邮件地址,则会提示最终用户验证电子邮件地址。如果电话号码尚未验证,则提示最终用户验证电话号码。

sign_up_without_verification

使用电子邮件地址电话号码注册本地帐户。不会提示最终用户验证电子邮件地址或电话号码。

sign_in_with_verification

使用电子邮件地址电话号码登录本地帐户。如果尚未验证电子邮件地址,则会提示最终用户验证电子邮件地址。如果电话号码尚未验证,则提示最终用户验证电话号码。


推荐阅读