azure - B2C 自定义策略:在登录页面添加取消按钮
问题描述
我想在我的登录页面上有一个“取消”按钮。此功能默认不可用,有一个功能请求。
这个问题表明可以使用自定义页面来实现。我的问题是:如何?我尝试修改我们的自定义 HTML,但无法让 UI 显示它。我希望它的行为类似于注册和密码重置期间可用的“取消”。
到目前为止,我们只有默认占位符:
<custom HTML>
...
<div id="api" data-name="Unified">
</div>
...
<custom HTML>
在看了这个例子之后,我尝试了这样的事情:
<custom HTML>
...
<div id="api" data-name="Unified">
<div class="buttons">
<button id="continue">
Continue
</button>
<button id="cancel">
Cancel
</button>
</div>
</div>
...
<custom HTML>
按钮未呈现。如果我将它们移出占位符,它们会显示出来,但不做任何事情。我们正在使用自定义策略。
例如,我使用自定义策略启动包(本地帐户)重新开始。
通过更改编排步骤类型,我可以在此示例中显示一个取消按钮。这消除了注册的能力,如果我需要选择身份提供者,它就不再起作用。
<OrchestrationStep Order="1" Type="ClaimsExchange" ContentDefinitionReferenceId="api.signuporsignin">
验证失败:在租户“xxx.onmicrosoft.com”的策略“B2C_1A_XXX”中发现 1 个验证错误。租户“xxx.onmicrosoft.com”的策略“B2C_1A_xxx”中的用户旅程“SignUpOrSignIn”包含第 2 步和 2 个声明交流。它必须在声明提供者选择之前,以确定可以使用哪个声明交换。
解决方案
只要我不需要“注册”或 ClaimsProviderSelection,似乎我可以切换编排步骤的类型。如果我需要 ClaimsProviderSelection,我无法获得有效的保单。
这并不能完全解决我的问题,因为除了本地帐户之外,我至少还需要有社交登录的可能性。密码重置也消失了...
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
<ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
</ClaimsProviderSelections>
<ClaimsExchanges>
<ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
</ClaimsExchanges>
</OrchestrationStep>
将第一行更改为:
<OrchestrationStep Order="1" Type="ClaimsExchange" ContentDefinitionReferenceId="api.signuporsignin">
推荐阅读
- rust - Cargo 的环境变量 RUSTC 和 RUSTC_WRAPPER 有什么区别?
- html - Angular 5 - 接收 POST 请求
- laravel - 如何使用laravel根据表单输入值提交表单后获取数据
- r - 过滤与事件的第一次和最后一次发生相关的数据
- groovy - 将命令行参数传递给 Groovy 脚本
- angular - 如何在angular4中将查询参数转换为字符串
- vba - 将数据从 PDF 提取到 Excel
- spring-boot - java - 如何使用java config在spring boot中添加几个activemq NetworkConnector,而不是使用XML文件配置
- typescript - 增强散射 Power BI 中的缩放和平移
- youtube - 如何从 API 访问新的 YouTube 分析指标(展示次数、展示点击率)