Когда я напрямую обращаюсь к API, я без проблем получаю внешний идентификатор аутентификации пользователя:
GET /admin/users/{id}.json
Однако при использовании JavaScript API я не могу получить те же данные для текущего пользователя. Фактически, объект currentUser не возвращает никаких данных о внешних идентификаторах:
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
}
});
Как можно получить внешний идентификатор currentUser через JavaScript?
Контекст
Я пытаюсь передать внешний идентификатор текущего пользователя в window.dataLayer.
Похоже, вы пытаетесь получить user_associated_account.provider_uid пользователя. Судя по коду, есть скрытая настройка сайта, которую нужно включить, чтобы associated_account_ids возвращались из CurrentUserSerializer:
Спасибо, @simon.
Однако, похоже, что на размещённом экземпляре я не могу включить её самостоятельно. В разделе /admin/site_settings я не нахожу соответствующей опции.