Como obter ID externo

Quando consumo a API diretamente, consigo acessar o ID de autenticação externa do usuário sem problemas:

GET /admin/users/{id}.json

No entanto, quando tento usar a API Javascript, não consigo obter os mesmos dados para o usuário atual. Na verdade, o currentUser não retorna nenhum dado 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
  }
});

Como posso acessar o ID externo do currentUser via Javascript?

O Contexto

Estou tentando enviar o ID externo do usuário atual para window.dataLayer.

Parece que você está tentando obter o user_associated_account.provider_uid do usuário. Pela análise do código, há uma configuração oculta no site que você precisa habilitar para que associated_account_ids seja retornado do CurrentUserSerializer:

A configuração include_associated_account_ids está oculta: discourse/config/site_settings.yml at main · discourse/discourse · GitHub. Para habilitá-la, acesse o console Rails do seu site e execute:

SiteSetting.include_associated_account_ids=true

3 curtidas

Obrigado @simon.
Embora, parece que não pode ser ativado em uma instância hospedada por mim mesmo. Não encontro nenhuma opção em /admin/site_settings

Provavelmente resolvido! : )

Se o seu site for hospedado pela Discourse, entre em contato com a equipe de suporte deles. Eles devem ser capazes de configurá-lo para você.

4 curtidas

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