是否可以通过 REST API 在 user_associated_account 表中插入一行?
为了提供一些背景信息,我需要在我们的 Discourse 实例中创建用户,并将他们链接到我们的 OAuth2 提供商。当用户通过 Discourse UI(使用 OAuth2 Basic 插件)登录时,他们的账户会被自动链接,我可以通过 GET /u/by-external/oauth2_basic/{external_uid} 接口,根据外部 UID 获取对应的 Discourse 用户 ID。
然而,当我们通过 REST API(POST /users.json)创建用户时,似乎没有方法将他们的账户与对应的 OAuth2 账户关联起来(除非他们手动在 Discourse 上登录)。
附注:OAuth2 Basic 插件已实现新的 Auth::ManagedAuthenticator 系统:https://github.com/discourse/discourse-oauth2-basic/pull/21
我尝试过以下方法:
- 查阅了 API 文档,但未找到任何线索。
- 找到了用于获取某个用户关联账户的 API 路由:
GET /u/{username}/emails.json。但该路由似乎不支持 HTTPPUT方法,也未暴露user_associated_accounts表中的字段(provider_name、provider_uid和user_id)。 - 我还检查了 Discourse 设置,看是否有与此问题相关的配置,但未成功。
- 我在 meta.discourse.org 上查找过,也未找到解决方案。
非常感谢您的任何帮助!谢谢 ![]()