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

Ois*_*ley 6 azure azure-ad-b2c azure-ad-b2c-custom-policy

我一直在使用有关 ContentDefinitions 的b2c 入门包MSDN 文档,以及 Azure B2C 产品的各个其他方面。

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

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

  • 在统一的注册/登录流程中,是否可以在“登录”屏幕之前触发“注册”屏幕?
  • 另外,是否可以将“登录”屏幕链接添加到“注册”屏幕?
    我知道可以通过添加<Item Key="setting.showSignupLink">false</Item>元数据来将“注册”屏幕链接添加到 ContentDefinition,但在使用 ContentDefinition 时,该链接似乎是开箱即用的api.signuporsignin
    到目前为止,我已经尝试将 a 添加<Item Key="setting.showSigninLink">false</Item>到我的 ContentDefinition 的元数据块中,但无济于事(我没有在任何地方的 MSDN 文档中找到此内容,只是想尝试一下)。

为了澄清,在注册/登录流程中,我想在启动策略后立即显示“注册”屏幕,然后可以选择导航到“登录”页面。

任何建议将不胜感激。

小智 5

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

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


Ois*_*ley 0

我提出的解决方案如下:
没有本地方法(即,您可以设置的 xml 策略配置参数)来将重新启动流程/登录按钮添加到注册页面。

如果您的主要目标是从“/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>
Run Code Online (Sandbox Code Playgroud)

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