Azure B2C 在统一 Signup/Signin 流程中首先显示注册页面

Azure B2C Show Signup Page First in Unified Signup/Signin Flow

我一直在使用 b2c starter packs and MSDN docs 关于 ContentDefinitions 以及 Azure B2C 产品的其他各个方面。

任何曾经尝试过实施自定义策略的人都意识到,文档并不总是那么详尽或明确,并且经常在语法上不正确或缺少细节。

考虑到这一点,我想知道:

澄清一下,在 signup/signin 流程中,我想在启动策略后立即显示 'sign up' 屏幕,然后可选择导航到 'sign in' 页面。

如有任何建议,我们将不胜感激。

不可能。您可以使用 B2C 请求电子邮件,然后在单个 B2C 策略中根据是否存在让用户登录或注册。

但要达到您描述的用户体验,您需要将旅程一分为二,注册并单独登录。

您可以通过将第 1 步和第 2 步转换为 type:ClaimsExchange 的单个步骤并分别引用登录或注册技术配置文件来实现。

然后您需要允许用户在两​​种策略之间切换。为此,请使用自定义 html 在每个策略中嵌入 link:myapp.com/signin 或 myapp.com/signup。然后,应用程序应向相应的 B2C 策略 ID 发送格式正确的身份验证请求。 https://docs.microsoft.com/en-us/azure/active-directory-b2c/customize-ui-with-html?pivots=b2c-custom-policy

架构参考在这里 https://docs.microsoft.com/en-us/azure/active-directory-b2c/self-asserted-technical-profile

你可以在这里了解更多 https://azure-ad-b2c.github.io/azureadb2ccommunity.io/docs/custom-policy-concepts/

我想到的解决方案如下:
没有本地方法(即 - 您可以设置的 xml 策略配置参数)将 restart-flow/login 按钮添加到注册页面。

如果您的主要目标只是从“/signup”返回到“/signin”,我建议您将以下 html 添加到您的模板中,然后您可以根据自己的喜好设置样式:

(Note the call to `history.back()` on the anchor tag)
<body>
    <div class="container unified_container">
      <div class="row">
        <div class="col-lg-6">
          <div class="panel panel-default">
            <div class="panel-body">
              <div id="api"></div>
              <div id="signinContainer">
                <p>
                  Already Registered?
                  <a
                    id="signinLink"
                    type="submit"
                    aria-disabled="false"
                    aria-label="To Sign in screen"
                    href="javascript:history.back()"
                    >Log in</a
                  >
                </p>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </body>

或者,如果您知道要返回特定次数(例如,返回 3 页),则可以使用以下内容代替我们在上面看到的 history.back()
history.go(-3);

对于发现自己在这里的任何其他人...Azure 团队现在提供了如何在自定义策略中执行此操作的示例!您提供一个查询字符串参数以直接导航到注册页面。

https://github.com/azure-ad-b2c/samples/tree/master/policies/sign-up-deep-link