在Keycloak“多步骤身份验证”过程中(使用自定义.ftl模板),如何通过href返回到上一步?

问题描述 投票:0回答:1

我正在使用Keycloak服务器开发依赖项v.21

由于一些特定的身份验证逻辑要求,我在Keycloak中创建了一个用户身份验证过程,分为3个步骤:

  1. 初始登录和密码步骤。
  2. 显示可能的“可用登录”的登录列表以供登录选择。
  3. 选择登录后,进行身份验证或要求新密码。

为了实现上述过程,我创建了 3 个不同的 Authenticator 类,每个类都使用相应的自定义 .ftl 模板。我使用自定义“浏览器流程”连接这 3 个“身份验证步骤”,将 3 个身份验证器依次堆叠,并通过 Keycloak 身份验证管理选项进行配置。

到目前为止一切顺利。但有一个看似微不足道的元素我未能完成,即:能够“当我处于身份验证过程的第二步或第三步时返回 1 步”或通过“返回到第一步”重新启动该过程。我想模板级别有一个环境变量,我可以将其用作实现“后退”的链接,但我一直无法找到它(如果它存在的话)。我确实尝试使用 href="${url.loginUrl},但它总是指向“当前步骤”,而不是“向后指向”(我还看到,无论我在哪一步,loginUrl 总是相同的)我进来了,所以这个变量没有帮助......)

您能否分享一些有关如何“通过链接返回”之前的身份验证器 ftl(可能通过使用可用的 ftl 变量)的反馈?或任何反馈(例如向我指出相关文档或相关问题/帖子)?

PS:请注意,我问的是如何在身份验证流程中返回 1 步(或第一步),而不是如何返回应用程序(取消身份验证流程),我已经通过使用:

<#if client?? && client.baseUrl?has_content>
       <p><a id="backToApplication" href="${client.baseUrl}">${kcSanitize(msg("backToApplication"))?no_esc}</a></p>
</#if>

提前致谢。

keycloak freemarker
1个回答
0
投票

使用 JavaScript 模拟后退按钮可以达到您的目的吗?

<button onclick="history.back()">Go Back</button>
© www.soinside.com 2019 - 2024. All rights reserved.