Wenn ich die API direkt aufrufe, kann ich problemlos auf die externe Authentifizierungs-ID eines Benutzers zugreifen:
GET /admin/users/{id}.json
Wenn ich jedoch die Javascript-API verwende, kann ich nicht dieselben Daten für den aktuellen Benutzer abrufen. Tatsächlich gibt currentUser keine Daten für externe IDs zurück:
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
}
});
Wie kann ich über Javascript auf die externe ID von currentUser zugreifen?
Der Kontext
Ich versuche, die externe ID des aktuellen Benutzers an window.dataLayer zu übergeben.
Es sieht so aus, als ob Sie versuchen, die user_associated_account.provider_uid des Benutzers abzurufen. Wenn ich mir den Code ansehe, gibt es eine versteckte Site-Einstellung, die Sie aktivieren müssen, damit associated_account_ids vom CurrentUserSerializer zurückgegeben werden:
Danke, @simon.
Allerdings scheint es, dass ich es auf einer gehosteten Instanz nicht selbst aktivieren kann. Ich finde keine Option unter /admin/site_settings.