Finding a user by their identity provider 'external ID'

:bookmark: Это руководство объясняет, как найти пользователя Discourse по его external_id от провайдера идентификации, используя вызовы API.

:person_raising_hand: Требуемый уровень пользователя: Администратор

При использовании внешней системы аутентификации Discourse отслеживает два идентификатора пользователя: user_id в Discourse и external_id от провайдера идентификации. Если вам нужно найти пользователя Discourse по external_id, эта статья howto для вас! Ниже вы узнаете, как выполнить эту операцию.

Настройка API

Сначала убедитесь, что у вас правильно настроен ключ администратора API. Дополнительную информацию о настройке и использовании API Discourse см. в документации по API Discourse.

DiscourseConnect

Если вы используете DiscourseConnect (ранее известный как Discourse SSO), вы можете получить данные пользователя с помощью следующего вызова API:

curl https://myforum.example.com/u/by-external/{external-id}.json \
     -H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
     -H "Api-Username: discourse1"

Замените {external-id} на фактический внешний идентификатор искомого пользователя. Если пользователь найден, будет возвращена его информация. Если нет, будет возвращена ошибка 404.

Другие провайдеры аутентификации

Это работает для всех основных методов, а также для плагинов, использующих фреймворк “ManagedAuthenticator” (включая discourse-openid-connect и discourse-oauth2-basic).

Сначала найдите “имя провайдера” вашего аутентификатора. Обычно оно содержится в URL-адресе обратного вызова (например, если URL обратного вызова — /auth/oauth2_basic/callback, то имя провайдера — oauth2_basic).

Затем вы можете получить данные пользователя следующим образом:

curl https://myforum.example.com/u/by-external/{provider}/{external-id}.json \
     -H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
     -H "Api-Username: discourse1"

Замените {provider} на фактическое имя провайдера, а {external-id} — на внешний идентификатор искомого пользователя. Если пользователь найден, будет возвращена его информация. Если нет, будет возвращена ошибка 404.

Дополнительные ресурсы

15 лайков