繁体   English   中英

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

[英]Azure B2C Show Signup Page First in Unified Signup/Signin Flow

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

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

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

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

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

任何建议将不胜感激。

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

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

这是不可能的。 您可以使用 B2C 请求 email,然后在单个 B2C 策略中根据它是否存在发送用户登录或注册。

但是要获得您描述的用户体验,您需要将旅程分成两部分,注册和单独登录。

您可以通过将第 1 步和第 2 步转换为单一类型的步骤来做到这一点:ClaimsExchange 并分别引用登录或注册技术配置文件。

然后你需要在两个策略之间启用用户go。 为此,请使用自定义 html 在每个策略中嵌入一个链接: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 策略配置参数)向注册页面添加重启流程/登录按钮。

如果您的主要目标是从“/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>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM