AWSCognito User PoolJavaScriptNode.js

[Node.js]Cognito User Poolsのユーザーをまとめて取ってくる

たまに集計などで欲しくなるので、覚書。 基本的にasync / awiat と再帰呼び出しでぶん回すだけです。 アクティブなユーザーを取ってくる listUsersAPIを使う。60件までしかとれないので注意。 特定のグ […]

広告ここから
広告ここまで

たまに集計などで欲しくなるので、覚書。

基本的にasync / awiat と再帰呼び出しでぶん回すだけです。

アクティブなユーザーを取ってくる

listUsersAPIを使う。60件までしかとれないので注意。

const AWS = require('aws-sdk')
const cognitoidp = new AWS.CognitoIdentityServiceProvider()

const listAllActiveUsers = async (token = '') => {
  const params = {
    UserPoolId: "USER_POOL_ID",
    Limit: 60,
    Filter: "cognito:user_status='CONFIRMED'"
  }
  if (token) params.PaginationToken = token
  const data = await cognitoidp.listUsers(params).promise()
  if (!data.PaginationToken) {
    return data.Users
  }
  const nextItems = await listAllActiveUsers(data.PaginationToken)
  const users = data.Users
  Array.prototype.push.apply(users, nextItems)
  console.log(users)
  return users
}

特定のグループのみ取得する

Group指定の場合はlisstUsersInGroupを使う。nextTokenのパラメータ名が違うので要注意。

const AWS = require('aws-sdk')
const cognitoidp = new AWS.CognitoIdentityServiceProvider()

const listAllActiveOwners = async (token = '') => {
  const params = {
    UserPoolId: "USER_POOL_ID",
    Limit: 60,
    GroupName: "GROUP_NAME"
  }
  if (token) params.NextToken = token
  const data = await cognitoidp.listUsersInGroup(params).promise()
  if (!data.NextToken) {
    return data.Users
  }
  const nextItems = await listAllActiveOwners(data.NextToken)
  const users = data.Users
  Array.prototype.push.apply(users, nextItems)
  return users
}

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts