gpt4 book ai didi

Keycloak - 要求用户在电子邮件验证后设置密码

转载 作者:行者123 更新时间:2023-12-04 13:12:47 35 4
gpt4 key购买 nike

我们正在评估 KeyCloak 以取代我们用于用户注册和身份验证的自定义实现。
我们当前的工作流程提供了一个注册屏幕,用户可以在其中自行注册。提交注册表时,会触发自定义验证流程,随后会向用户发送一封电子邮件以验证其电子邮件并激活其帐户。电子邮件中的链接允许他们设置密码,然后向他们发送欢迎电子邮件。
我正在使用 Admin REST 客户端 API 来实现此工作流程。我已经到了电子邮件验证部分。
我的问题:

  • 用户已经验证了他们的电子邮件,有什么方法可以让 KeyCloak 向他们显示设置密码屏幕?
  • 身份验证流程 - 如果我正在编写此自定义工作流程,通过管理控制台设置的注册身份验证流程是否仍然适用?
  • 最佳答案

    谢谢 CodeWalter..
    对于可能需要它的任何其他人,这就是我使用 Java 客户端的方式。

            Keycloak keycloak = KeycloakBuilder.builder() 
    .serverUrl(SERVER_URL)
    .realm(MASTER_REALM)
    .grantType(OAuth2Constants.CLIENT_CREDENTIALS)
    .clientId(CLIENT_ID)
    .clientSecret(CLIENT_SECRET)
    .build();

    // Define user
    UserRepresentation user = new UserRepresentation();
    user.setEnabled(true);
    user.setUsername("first.last@gmail.com");
    user.setFirstName("First");
    user.setLastName("Last");
    user.setEmail("first.last@gmail.com");
    user.setAttributes(Collections.singletonMap("MRN", Arrays.asList("11111")));

    // Define password credential
    CredentialRepresentation passwordCred = new CredentialRepresentation();
    passwordCred.setTemporary(true);
    passwordCred.setType(CredentialRepresentation.PASSWORD);
    passwordCred.setValue("Password@1");

    user.setCredentials(Arrays.asList(passwordCred));

    // Get realm
    RealmResource realmResource = keycloak.realm(PHUB_REALM);
    UsersResource usersRessource = realmResource.users();

    // Create user (requires manage-users role)
    Response response = usersRessource.create(user);
    String userId = CreatedResponseUtil.getCreatedId(response);
    System.out.println("Response: " + response.getStatusInfo());
    System.out.println(userId);

    UserResource u = realmResource.users().get(userId);
    u.sendVerifyEmail();

    关于Keycloak - 要求用户在电子邮件验证后设置密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63398916/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com