Keycloak - 密码重置后自动登录

Keycloak - auto login after password reset

目前 Keycloak 设置成功地与前端应用程序 (react) 和后端 (django) 一起使用 2 个客户端。一个用于具有 confidential 访问类型的后端,第二个用于具有 public 访问类型的前端身份验证。

尝试完成一项功能,我们可以在其中为用户触发密码重置电子邮件(从事物的前端管理端),并且能够使用以下 PUT 调用来实现以下功能文档 here:

https://auth.domain.com/auth/admin/realms/realm-dev/users/c78263n-f7gb-47c4-a7450-9092ae08efed/execute-actions-email?redirect_uri=http%3A%2F%2Flocalhost%3A3000%2F&client_id=app-front&lifespan=259200

有效载荷为:["VERIFY_EMAIL","UPDATE_PASSWORD"]

然后用户会收到一封电子邮件,其中包含 link 以执行上述操作。

到目前为止一切顺利。

问题是:一旦用户在 keycloak 上完成密码更新,并点击返回应用程序,他们必须重新登录。有没有办法在通过此工作流程设置用户密码后自动登录用户?

我在反应端尝试了以下方法,但没有帮助并创建了一个轻微的重定向循环,直到再次进入登录表单:

import Keycloak from 'keycloak-js';

const keycloak = Keycloak(process.env.REACT_APP_KEYCLOAK_JSON);

keycloak.init({
  onLoad: 'check-sso',
  silentCheckSsoRedirectUri: `${window.location.origin}/silent-check-sso.html`,
  pkceMethod: 'S256',
});

export default keycloak;

对于完成此实施的任何帮助,我们将不胜感激。

在 Keycloak 社区论坛中找到了这个“看起来 AbstractActionTokenHandler 设置了一个注释,在执行所需的操作后应该终止会话”,这里还有一个建议的解决方案:https://keycloak.discourse.group/t/logging-a-user-in-directly-from-an-actiontoken/12506/7