有没有办法在允许用户单击创建或更新未验证时更新模糊错误消息之前在 Azure B2C 中强制进行电子邮件验证?

Is there a way to force email verification in Azure B2C before allowing user to click Create or update the vague error message when not verified?

我有 Azure AD B2C 注册并参与政策,希望改善创建帐户的用户体验。如果新用户在创建新的 Azure AD B2C 帐户时没有单击“发送验证码”按钮并填写剩余的表单字段,他们会收到“缺少必填字段。请填写所有必填字段,然后重试。” :

大多数用户对缺少的必填字段感到困惑,因为没有输入只是一个发送验证码的按钮。我想强制用户单击按钮并在他们能够单击创建按钮之前验证他们的电子邮件,或者提供更具描述性的错误消息,例如:“缺少必填字段或电子邮件验证码尚未 sent/verified".

有谁知道我如何在不走自定义页面内容路径的情况下执行这些操作?

如果是,登录注册用户流程,错误消息或流程只能通过user interface with HTML templates自定义,看起来不像你说的那样喜欢 “不走自定义页面内容路线”

如果您使用使用 TrustFrameworkExtensions.xml

的自定义策略,则可以使用本地化

ID 为 api.localaccountsignup 的内容定义的 ID。 Localization string IDs - Azure Active Directory B2C | Microsoft Docs / localization-string-ids

  • 您需要在相应的“api.xxx”操作中进行更改。在这个 例如,它是“api.localaccountsignup”。
  • XML 对 TrustFrameworkExtensions.xml 文件的更改是:

ID : error_requiredFieldMissing
默认值:缺少必填字段。请填写所有必填字段,然后重试。

<LocalizedResources Id="api.localaccountsignup.en">
...
<LocalizedString ElementType="UxElement" StringId="error_requiredFieldMissing">A required field is missing. Please fill out all required fields and try again.</LocalizedString>
...
<LocalizedResources Id="api.localaccountsignup.en">

我们可能需要更改为

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
    <SupportedLanguage>en</SupportedLanguage>
  </SupportedLanguages>
  <LocalizedResources Id="api.localaccountsignup.en">

   #Change the error message here
    <LocalizedStrings>
<LocalizedString ElementType="UxElement" StringId="error_requiredFieldMissing">A required field is missing or the Email Verification Code has not been sent/verified as not clicked on send verification code</LocalizedString>
    </LocalizedStrings>

  </LocalizedResources>
</Localization>

参考:

  1. Customising the message/error text in Azure AD B2C custom policies | by Rory Braybrook
  2. or
  3. Localization string IDs - verification-display-control| Microsoft Docs