Keycloak:密码重置后禁用重定向到帐户页面并显示消息

Neh*_*haM 8 authentication redirect forgot-password reset-password keycloak

我正在使用 Keycloak,我想启用忘记密码流程。我已启用“登录时忘记密码”并配置 SMTP 来发送电子邮件。我从 keycloak 中得到的内容如下

-> 单击“忘记密码”链接 -> 输入用户名或电子邮件 -> 用户收到一封包含重置链接的电子邮件 -> 单击该链接 -> 重置密码,然后提交 ->用户登录,然后用户将被重定向到帐户页面。

我想要达到的目标如下

-> 单击“忘记密码”链接 -> 输入用户名或电子邮件 -> 用户收到一封包含重置链接的电子邮件 -> 单击该链接 -> 重置密码,然后提交 -> 显示一条消息“您的密码已更新”。并且不要登录该用户。留在该页面上。

原因是,对于我的用例,用户不应该访问 Keycloak 上的帐户页面。

在重置凭据的身份验证流程中,我只能配置最多重置凭据。

有什么方法可以禁用密码重置后自动登录用户然后重定向到帐户页面的操作吗?

我研究了几个问题,但找不到如何实现这一目标的答案。

PS:我正在使用具有自定义主题的 Keycloak docker 映像。如果可以使用自定义主题选项进行配置,我就有机会这样做。

先感谢您。

sol*_*eMe 2

我们在 keycloak 使用过程中遇到了类似的问题,并通过实现自定义操作令牌和操作令牌处理程序解决了该问题(文档)。另请查看原始 keycloak 重置凭据操作令牌源:

行动代币

ActionTokenHandler

尝试AbstractActionTokenHander.startFreshAuthenticationSession()在重置流程期间尝试定义 Keycloak 行为的几个属性,例如:

authSession.setRedirectUri(token.getNote(OIDCLoginProtocol.REDIRECT_URI_PARAM));
authSession.setAuthNote(AuthenticationManager.END_AFTER_REQUIRED_ACTIONS, "true");
authSession.setAuthNote(AuthenticationManager.SET_REDIRECT_URI_AFTER_REQUIRED_ACTIONS, "true");
authSession.setAuthNote(AuthenticationManager.END_AFTER_REQUIRED_ACTIONS, "true");
Run Code Online (Sandbox Code Playgroud)