Использование ListUsers для получения всех пользователей, которые имеют или не подтвердили свои адреса электронной почты - AWS Cognito

Я пытаюсь получить список всех пользователей cognito, имеющих атрибут email_verified, а затем всех пользователей, у которых его нет (я также согласен получить всех пользователей, имеющих атрибут email_verified с пользователем, чтобы я можно просто составить два списка). Мой подход до сих пор заключался в том, чтобы сделать что-то подобное

client.list_users(
    UserPoolId=pool_id,
    AttributesToGet=['email_verified']
)

Это работает до тех пор, пока все пользователи имеют атрибут email_verified. Если пользователь, однако, не имеет этого атрибута, я получаю эту ошибку:

ClientError: Произошла ошибка (InvalidParameterException) при вызове операции ListUsers: один или несколько запрошенных атрибутов не существуют.

Я попытался использовать параметр Filter в функции ListUsers, однако он не похож на атрибут email_verified.

Мы ценим любые предложения.

В случае, если это имеет значение, я пытаюсь сделать это в Python

2 ответа

Я знаю, что это старый вопрос, но я отвечу на всякий случай, если кто-то еще тоже ищет ответ (например, я был вчера).

Если вы просто опустите параметр AttributesToGet при вызове listUsers, он вернет список пользователей со всеми атрибутами для каждого пользователя. Затем вы можете просто просмотреть этот список и выбрать тех пользователей, у которых есть атрибут email_verified, в зависимости от того, истинно он или ложно.

Поле AttributesToGet является в основном проекцией, набором атрибутов, которые вы хотите, чтобы поиск де-факто возвращался. Если его там нет, он не может его получить, отсюда и ошибка.

Не могли бы вы получить каждого пользователя, который имеет атрибут электронной почты, может быть? Затем разделите список на основе того, существует ли этот атрибут в коллекции?

Попробуйте использовать атрибут "статус".

Статус должен показать вам "Подтвержденные" и "Неподтвержденные" пользователи.

Вот список атрибутов, по которым вы можете искать. Другие атрибуты для поиска не поддерживаются.

имя пользователя (с учетом регистра)

Эл. адрес

номер телефона

название

собственное имя

фамилия

preferred_username

cognito:user_status (в консоли называется "Включено") (с учетом регистра)

статус (без учета регистра)

Другие вопросы по тегам