4

我正在使用 AWS Cognito 中的用户池为我的 java spring-boot 应用程序的用户创建用户以及身份验证和授权,我已经编写了代码来从 Cognito 获取用户并且它工作正常,但我想以分页方式获取用户,并且Cognito 也提供相同的功能,但问题是它没有像每个 listuserrequest 那样提供来回分页 如果有更多用户并且如果收到页面令牌 null 意味着它的最后一批用户,我将获得页面令牌,但考虑有 10我的池中的用户,我在每次调用中设置了 2 个用户的限制,理想情况下它分成 5 页来解决我的问题是,如果我已经获取了第 3 页并且再次想要或在第 2 页获取用户,我该如何实现这一点,如果有人知道如何实现它,请提供帮助

private List<UserDto> getAllUserPagination() {
        final ListUsersRequest listUsersRequest = new ListUsersRequest()
                .withUserPoolId(awsConfig.getPoolId())
                .withLimit(2);
        ListUsersResult listUsersResult = cognitoClient.listUsers(listUsersRequest);
        final List<UserDto> users = listUsersResult.getUsers().stream()
                .map(UserMapper::toUserModel)
                .collect(Collectors.toList());
        do {
            System.out.println(listUsersResult.getPaginationToken());
            listUsersRequest.setPaginationToken(listUsersResult.getPaginationToken());
            listUsersResult = cognitoClient.listUsers(listUsersRequest);
            users.addAll(listUsersResult.getUsers().stream()
                    .map(UserMapper::toUserModel)
                    .collect(Collectors.toList()));
            System.out.println(users.toString());
        } while ((Objects.nonNull(listUsersResult.getPaginationToken())));
        return users;
    } 
4

0 回答 0