gormus
(Osman Görmüş)
3월 20, 2023, 6:30오후
1
API 를 직접 호출하면 사용자의 외부 인증 ID에 아무 문제 없이 접근할 수 있습니다:
GET /admin/users/{id}.json
하지만 JavaScript API를 사용하려고 하면 현재 사용자 의 동일한 데이터를 가져올 수 없습니다. 실제로 currentUser는 외부 ID에 대해 데이터를 반환하지 않습니다:
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
}
});
JavaScript를 통해 currentUser의 외부 ID에 접근하는 방법은 무엇인가요?
배경
현재 사용자의 외부 ID를 window.dataLayer에 푸시(push)하려고 하고 있습니다.
simon
3월 20, 2023, 6:53오후
2
사용자의 user_associated_account.provider_uid를 가져오려고 하고 있는 것 같습니다. 코드를 살펴본 결과, CurrentUserSerializer에서 associated_account_ids가 반환되도록 하려면 활성화해야 하는 숨겨진 사이트 설정이 있습니다:
include_associated_account_ids 설정은 숨겨져 있습니다: discourse/config/site_settings.yml at main · discourse/discourse · GitHub . 이를 활성화하려면 사이트의 Rails 콘솔에 진입하여 다음을 실행하세요:
SiteSetting.include_associated_account_ids=true
gormus
(Osman Görmüş)
3월 20, 2023, 7:02오후
3
@simon 님 감사합니다.
다만, 호스팅된 인스턴스에서는 제가 직접 활성화할 수 없는 것 같습니다. /admin/site_settings에서 옵션을 찾을 수 없었습니다.
아마도 해결된 것 같습니다! : )
simon
3월 20, 2023, 7:04오후
4
사이트가 Discourse에 의해 호스팅되고 있다면, 그들의 지원팀에 문의하세요. 대신 설정해 줄 수 있을 것입니다.