Comment obtenir l'ID externe

Lorsque j’accède directement à l’API, je peux accéder à l’ID d’authentification externe d’un utilisateur sans problème :

GET /admin/users/{id}.json

Cependant, lorsque j’essaie d’utiliser l’API Javascript, je ne peux pas obtenir les mêmes données pour l’utilisateur actuel. En fait, currentUser ne renvoie aucune donnée pour les ID externes :

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

Comment puis-je accéder à l’ID externe de currentUser via Javascript ?

Le Contexte

J’essaie de pousser l’ID externe de l’utilisateur actuel vers window.dataLayer.

Il semble que vous essayez d’obtenir user_associated_account.provider_uid de l’utilisateur. D’après le code, il existe un paramètre de site caché que vous devez activer pour que associated_account_ids soit renvoyé par CurrentUserSerializer :

Le paramètre include_associated_account_ids est caché : discourse/config/site_settings.yml at main · discourse/discourse · GitHub. Pour l’activer, entrez dans la console Rails de votre site et exécutez :

SiteSetting.include_associated_account_ids=true

3 « J'aime »

Merci @simon.
Cependant, il semble qu’il ne puisse pas être activé par moi-même sur une instance hébergée. Je ne trouve aucune option dans /admin/site_settings.

Probablement résolu ! : )

Si votre site est hébergé par Discourse, contactez leur équipe de support. Ils devraient être en mesure de le configurer pour vous.

4 « J'aime »

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