当前位置: 首页 > 知识库问答 >
问题:

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

鲁博雅
2023-03-14

我们正在评估KeyCloak以取代我们的用户注册和身份验证的自定义实现。

我们当前的工作流提供了一个注册屏幕,用户可以在其中自行注册。在提交注册表单时,自定义验证流被触发,随后向用户发送电子邮件以验证他们的电子邮件并激活他们的帐户。电子邮件中的链接允许他们设置密码,然后向他们发送欢迎电子邮件。

    null

共有1个答案

芮安顺
2023-03-14

谢谢。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();
 类似资料:
  • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email

  • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。

  • 当我的用户收到“请验证电子邮件链接”时,模板中的链接总是:http://localhost:8280/auth.... 但是在此更改之后,我不能再启动我的Quarkus应用程序,因为我得到以下错误消息:颁发者验证错误:received[https://mylinktomywebsite.com/auth/realms/turniersoftware] 所以我移除了KeyCloak中的这个设置。 可

  • 问题内容: 我检查了用户是否通过电子邮件验证。但是,无论我发送并确认了多少电子邮件,验证状态仍为。检查时我做错什么了吗? 问题答案: 我如何实现此功能的方法是添加一个 带有时间间隔的,它将检查用户是否已通过验证,然后在完成验证后终止计时器。 检查您当前用户状态的功能:

  • 我检查了用户是否通过电子邮件进行验证。但是,无论我发送并确认了多少封电子邮件,验证状态仍然是。我在检查时是否做错了什么?

  • 我有一张登记表,上面有姓名、电子邮件和密码。注册时,会向用户的电子邮件地址发送一个确认链接。但在发送链接之前,我需要验证电子邮件地址。我使用了: 它显示的任何电子邮件都有效,例如, 我从获得的电子邮件并将其存储在中。 我到底要怎么做才能让它成功?