You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Cognito listUsers初始PaginationToken设置及单用户查询

问题解答

关于PaginationToken的初始值问题

初始调用listUsers时,不需要传入PaginationToken参数,直接从params里删掉这个字段即可。这个参数仅在你需要获取下一页结果时使用——当第一次查询返回的结果数量超过你设置的Limit值时,返回数据里会包含一个有效的PaginationToken,下一次调用时传入这个值就能拿到后续数据。初始调用硬传无效值会触发报错。

修复后的listUsers代码:

listUserFromUserpool = async () => {
  var params = {
    UserPoolId: process.env.USER_POOL_ID /* required */,
    AttributesToGet: ["username"],
    Filter: 'username = "example"',
    Limit: 5
    // 移除PaginationToken参数
  };

  try {
    let data = await this.cognitoIdentity.listUsers(params).promise();
    return data;
  } catch (error) {
    console.log(error);
    return false;
  }
};

无需分页获取单个用户的方法

检查用户名是否存在的场景,更推荐用adminGetUser方法,它可以直接通过用户名精准查询单个用户,不需要过滤和分页,效率更高。

注意:调用这个方法需要对应的IAM权限(比如cognito-idp:AdminGetUser),且你的服务角色需要被允许访问目标用户池。

示例代码:

checkUserExists = async (username) => {
  var params = {
    UserPoolId: process.env.USER_POOL_ID,
    Username: username // 要检查的目标用户名
  };

  try {
    await this.cognitoIdentity.adminGetUser(params).promise();
    // 成功返回则说明用户存在
    return true;
  } catch (error) {
    // 抛出UserNotFoundException则说明用户不存在
    if (error.code === 'UserNotFoundException') {
      return false;
    }
    // 处理其他未知错误
    console.log(error);
    return false;
  }
};

内容的提问来源于stack exchange,提问作者Fury

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:54:33