gormus
(Osman Görmüş)
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。
simon
2
看起来您正尝试获取用户的 user_associated_account.provider_uid。从代码来看,有一个隐藏的站点设置需要启用,才能使 associated_account_ids 从 CurrentUserSerializer 返回:
include_associated_account_ids 设置是隐藏的:discourse/config/site_settings.yml at main · discourse/discourse · GitHub Rails 控制台并运行:
SiteSetting.include_associated_account_ids=true
3 个赞
gormus
(Osman Görmüş)
3
谢谢 @simon。
不过,似乎我无法在托管实例上自行启用它。我在 /admin/site_settings 中找不到任何选项。
可能已解决! : )
simon
4
如果您的站点由 Discourse 托管,请联系他们的支持团队。他们应该能够为您进行设置。
4 个赞
system
(system)
关闭
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.