its*_*hal 5 java spring-boot amazon-cognito aws-userpools
我正在 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |