Создать API-ключ для пользователя программно как администратор

Всем привет, с Хэллоуином и праздниками.

Есть ли способ создать API-ключ для каждого пользователя, созданного как администратор? Существует User API keys specification, требующая одобрения пользователем. Есть ли возможность создавать API-ключи для каждого пользователя программно, используя административный API-ключ?

Заранее спасибо.

Какую проблему решит генерация этих ключей? Возможно, существует другой способ, и дополнительная информация может подсказать решение.

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

Поэтому, скорее всего, вам понадобится что-то вроде DiscourseConnect — официальный единый вход для Discourse (sso).

Или, если приложение извлекает данные из Discourse в браузере, пользователь уже будет авторизован. А если приложение извлекает данные автоматически на бэкенде, вы можете просто использовать глобальный ключ.

Да, спасибо за ссылку на SSO. Мы уже настроили SSO. Нам нужно публиковать сообщения от имени пользователей с фронтенда нашего веб-приложения (React).

Итак, вам нужно будет публиковать сообщения из браузера (это то, что означает «фронтенд»?), чтобы пользователи были авторизованы, так что вам, думаю, нужно лишь разобраться с CORS.

Да, из браузера. Извините, если я не был достаточно ясен. Всё это происходит из другого веб-приложения: пользователь не авторизован, и встраивание Discourse через iframe отсутствует. Запрос исходит из браузера и передаёт API-ключ как параметр запроса.

Мое понимание API-ключей таково: как только у нас есть API-ключ пользователя, мы можем действовать от его имени из любого места, даже из консоли или терминала (через curl или аналогичные средства). Проблемы с CORS больше не возникают.

https://meta.discourse.org/t/discourse-api-documentation/22706/301

Спасибо большое, вы настоящий спаситель!