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 in'屏幕之前触发'sign up'屏幕?
- 此外,是否可以在 'sign up' 屏幕上添加 'sign in' 屏幕 link?
我知道可以通过将 <Item Key="setting.showSignupLink">false</Item>
添加到其元数据来将 'sign up' 屏幕 link 添加到 ContentDefinition,但是这个 link 似乎是开箱即用的使用 api.signuporsignin
ContentDefinition.
到目前为止,我已经尝试将 <Item Key="setting.showSigninLink">false</Item>
添加到我的 ContentDefinition 的元数据块中,但无济于事(我在 MSDN 文档中的任何地方都没有找到它,只是想尝试一下)。
澄清一下,在 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
我一直在使用 b2c starter packs and MSDN docs 关于 ContentDefinitions 以及 Azure B2C 产品的其他各个方面。
任何曾经尝试过实施自定义策略的人都意识到,文档并不总是那么详尽或明确,并且经常在语法上不正确或缺少细节。
考虑到这一点,我想知道:
- 是否可以在统一的signup/signin流程中在'sign in'屏幕之前触发'sign up'屏幕?
- 此外,是否可以在 'sign up' 屏幕上添加 'sign in' 屏幕 link?
我知道可以通过将<Item Key="setting.showSignupLink">false</Item>
添加到其元数据来将 'sign up' 屏幕 link 添加到 ContentDefinition,但是这个 link 似乎是开箱即用的使用api.signuporsignin
ContentDefinition.
到目前为止,我已经尝试将<Item Key="setting.showSigninLink">false</Item>
添加到我的 ContentDefinition 的元数据块中,但无济于事(我在 MSDN 文档中的任何地方都没有找到它,只是想尝试一下)。
澄清一下,在 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