You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD B2C优化邮箱验证:验证成功直接跳转注册页面

Azure AD B2C 邮箱验证成功后自动跳转注册页(原生方案)

针对拆分邮箱验证与注册流程的场景,要去掉验证成功后的Continue按钮、实现自动跳转,可通过自定义策略的原生配置完成,无需依赖JS脚本,具体步骤如下:

1. 调整邮箱验证显示控件的动作配置

在自定义策略的<DisplayControls>节点中,找到emailVerificationControl(或你自定义的验证控件ID),修改其VerifyCode动作的配置,添加自动推进用户旅程的逻辑:

<DisplayControl Id="emailVerificationControl" UserInterfaceControlType="VerificationControl">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <DisplayClaims>
    <DisplayClaim ClaimTypeReferenceId="verificationCode" Required="true" />
  </DisplayClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" />
  </OutputClaims>
  <Actions>
    <Action Id="SendCode">
      <ValidationClaimsExchange>
        <ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AadSspr-SendCode" />
      </ValidationClaimsExchange>
    </Action>
    <Action Id="VerifyCode">
      <ValidationClaimsExchange>
        <ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AadSspr-VerifyCode" />
      </ValidationClaimsExchange>
      <!-- 验证成功后自动推进到下一旅程步骤 -->
      <ContinueOnSuccess>true</ContinueOnSuccess>
    </Action>
  </Actions>
</DisplayControl>

核心是添加<ContinueOnSuccess>true</ContinueOnSuccess>,它会在验证码验证通过后,自动触发用户旅程进入下一个步骤,不再停留等待用户点击Continue。

2. 简化用户旅程的编排步骤

在<UserJourneys>中对应注册旅程的<OrchestrationSteps>里,确保邮箱验证步骤之后直接衔接注册页面的步骤,移除中间的确认步骤:

<UserJourney Id="SignUpWithEmailSplit">
  <OrchestrationSteps>
    <!-- 步骤1:邮箱输入与验证码验证 -->
    <OrchestrationStep Order="1" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="EmailVerificationExchange" TechnicalProfileReferenceId="EmailVerification" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <!-- 步骤2:直接进入注册信息填写页面 -->
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="LocalAccountSignUpExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <!-- 后续的创建用户、令牌颁发等步骤保持不变 -->
  </OrchestrationSteps>
</UserJourney>

3. 确保验证技术配置文件的声明传递正确

检查邮箱验证的技术配置文件(如AadSspr-VerifyCode)的输出声明,保证验证后的邮箱声明能传递到注册步骤:

<TechnicalProfile Id="AadSspr-VerifyCode">
  <DisplayName>Verify Code</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">VerifyCode</Item>
    <Item Key="UserMessageIfInvalidCode">Invalid code entered.</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
    <InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="verificationCode" />
  </InputClaims>
  <OutputClaims>
    <!-- 确保邮箱声明被正确输出并传递 -->
    <OutputClaim ClaimTypeReferenceId="email" Persistent="true" />
  </OutputClaims>
</TechnicalProfile>

注意事项

  • 该方案基于Azure AD B2C自定义策略的原生功能,不存在JS脚本的兼容性问题;
  • 建议使用最新版本的B2C策略框架(如Build 20230901及以上),确保<ContinueOnSuccess>属性能正常生效;
  • 测试时需验证邮箱声明是否能正常传递到注册步骤,避免出现声明缺失导致的流程错误。

内容的提问来源于stack exchange,提问作者Michael Freidgeim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:35:29