Cómo obtener ID externo

Cuando consumo la API directamente, puedo acceder al ID de autenticación externo del usuario sin ningún problema:

GET /admin/users/{id}.json

Sin embargo, cuando intento usar la API de Javascript, no puedo obtener los mismos datos para el usuario actual. De hecho, currentUser no devuelve ningún dato para IDs externos:

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer("1.5.0", api => {
  const currentUser = api.getCurrentUser();
  if (currentUser) {
    const userOAuthID = currentUser?.external_ids?.oauth2_basic;
    console.log("userOAuthID:", userOAuthID); // null
  }
});

¿Cómo podría acceder al ID externo de currentUser a través de Javascript?

El Contexto

Estoy intentando enviar el ID externo del usuario actual a window.dataLayer.

Parece que estás intentando obtener el user_associated_account.provider_uid del usuario. Según el código, hay una configuración oculta del sitio que necesitas habilitar para que associated_account_ids se devuelva desde CurrentUserSerializer:

La configuración include_associated_account_ids está oculta: discourse/config/site_settings.yml at main · discourse/discourse · GitHub. Para habilitarla, ingresa a la consola de Rails de tu sitio y ejecuta:

SiteSetting.include_associated_account_ids=true

3 Me gusta

Gracias @simon.
Aunque parece que no puedo habilitarlo yo mismo en una instancia alojada. No encuentro ninguna opción en /admin/site_settings

¡Probablemente resuelto! : )

Si tu sitio está alojado por Discourse, ponte en contacto con su equipo de soporte. Deberían poder configurarlo por ti.

4 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.