Использование 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 (в консоли называется "Включено") (с учетом регистра)
статус (без учета регистра)