Come ottenere l'ID esterno

Quando accedo direttamente all’API, posso accedere all’ID di autenticazione esterno dell’utente senza problemi:

GET /admin/users/{id}.json

Tuttavia, quando provo a utilizzare l’API Javascript, non riesco a ottenere gli stessi dati per l’utente corrente. Infatti, currentUser non restituisce alcun dato per gli ID esterni:

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
  }
});

Come posso accedere all’ID esterno di currentUser tramite Javascript?

Il Contesto

Sto cercando di inviare l’ID esterno dell’utente corrente a window.dataLayer.

Sembra che tu stia cercando di ottenere user_associated_account.provider_uid dell’utente. Dando un’occhiata al codice, c’è un’impostazione del sito nascosta che devi abilitare per far sì che associated_account_ids venga restituito da CurrentUserSerializer:

L’impostazione include_associated_account_ids è nascosta: discourse/config/site_settings.yml at main · discourse/discourse · GitHub. Per abilitarla, accedi alla console Rails del tuo sito ed esegui:

SiteSetting.include_associated_account_ids=true

3 Mi Piace

Grazie @simon.
Tuttavia, sembra che non possa abilitarla da solo su un’istanza ospitata. Non trovo alcuna opzione in /admin/site_settings

Probabilmente risolto! : )

Se il tuo sito è ospitato da Discourse, contatta il loro team di supporto. Dovrebbero essere in grado di impostarlo per te.

4 Mi Piace

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