Однако нам нужно проверить в другом сервисе с помощью API Discourse, существует ли email-адрес на сайте Discourse. Мы можем искать по имени пользователя или имени через /u/search/users.json, но, похоже, эти запросы не возвращают email-адрес.
Так можно ли выполнить поиск или запрос всех email-адресов для сравнения?
Да, ссылка, включенная в мой первоначальный вопрос, — это «Discourse Meta/emails.json», но есть ли способ получить все адреса электронной почты пользователей? … Я бы предпочел использовать API, а не реализовывать плагин, позволяющий выполнять SQL-запросы, если это вообще возможно.
Наши API-эндпоинты используются веб-приложением. Поскольку мы логируем запросы по электронной почте в веб-приложении, мы нигде не предоставляем возможность массовой загрузки адресов электронной почты.
Единственный способ на данный момент — это решение на основе упомянутого выше Data Explorer.
Для ясности: мы используем API через секретный ключ. Я понимаю, что у фронтенда не будет тех же прав, но разве API не может получить доступ?
Чтобы уточнить: у нас есть приложение и Discourse, оба используют авторизацию SSO через Auth0. Однако, если пользователь входит в наше приложение, мы хотим убедиться, что у него есть учётная запись в Discourse (и перенаправить его по соответствующей ссылке). Возможно, это не лучший способ проверить, зарегистрирован ли этот email в Discourse, если пользователь сначала приходит на наш сайт. Эта ссылка ведёт в Discourse на случай, если email ещё не зарегистрирован.
Если вы используете настоящийDiscourse SSO, вы можете проверить существование пользователя по его внешнему уникальному идентификатору, переданному в полезной нагрузке SSO, используя запрос GET https://example.com/u/by-external/<EXTERNAL_ID>