Esta guía explica cómo encontrar un usuario de Discourse basándose en su
external_idde un proveedor de identidad mediante llamadas a la API.
Nivel de usuario requerido: Administrador
Cuando se utiliza un sistema de autenticación externo, Discourse realiza un seguimiento de dos ID de usuario: el user_id de Discourse y un external_id del proveedor de identidad. Si necesita buscar un usuario de Discourse basándose en el external_id, ¡este artículo de howto es para usted! A continuación, aprenderá a realizar esta operación.
Configuración de la API
Primero, asegúrese de haber configurado correctamente una clave de API de administrador. Para obtener más información sobre cómo configurar y utilizar la API de Discourse, consulte la documentación de la API de Discourse.
DiscourseConnect
Si está utilizando DiscourseConnect (anteriormente conocido como Discourse SSO), puede obtener un usuario con la siguiente llamada a la API:
curl https://myforum.example.com/u/by-external/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
Reemplace {external-id} con el ID externo real del usuario que está buscando. Si se encuentra un usuario, se devolverá su información. Si no, se devolverá un 404.
Otro proveedor de autenticación
Esto funciona para todos los métodos principales, así como para los complementos que utilizan el marco de trabajo “ManagedAuthenticator” (incluidos discourse-openid-connect y discourse-oauth2-basic).
Primero, encuentre el ‘nombre del proveedor’ de su autenticador. Normalmente se encuentra en la URL de devolución de llamada (por ejemplo, si la URL de devolución de llamada es /auth/oauth2_basic/callback, entonces el nombre del proveedor es oauth2_basic).
Luego puede obtener un usuario de esta manera:
curl https://myforum.example.com/u/by-external/{provider}/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
Reemplace {provider} con el nombre real del proveedor y {external-id} con el ID externo del usuario que está buscando. Si se encuentra un usuario, se devolverá su información. Si no, se devolverá un 404.