本指南说明了如何使用 API 调用根据身份提供商的
external_id查找 Discourse 用户。
所需用户级别:管理员
当使用外部身份验证系统时,Discourse 会跟踪两个用户 ID:Discourse 的 user_id 和来自身份提供商的 external_id。如果您需要根据 external_id 查找 Discourse 用户,那么这篇 howto 文章就是为您准备的!下面,您将了解如何执行此操作。
API 设置
首先,请确保已正确配置管理员 API 密钥。有关设置和使用 Discourse API 的更多信息,请参阅 Discourse API 文档。
DiscourseConnect
如果您使用的是 DiscourseConnect(以前称为 Discourse SSO),您可以使用以下 API 调用来获取用户:
curl https://myforum.example.com/u/by-external/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
将 {external-id} 替换为您要查找的用户的实际外部 ID。如果找到用户,将返回其信息。如果没有找到,将返回 404 错误。
其他身份验证提供商
这适用于所有核心方法以及使用“ManagedAuthenticator”框架的插件(包括 discourse-openid-connect 和 discourse-oauth2-basic)。
首先,找到您的身份验证器的“提供商名称”(‘provider name’)。这通常包含在回调 URL 中(例如,如果回调 URL 是 /auth/oauth2_basic/callback,则提供商名称为 oauth2_basic)。
然后您可以像这样获取用户:
curl https://myforum.example.com/u/by-external/{provider}/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
将 {provider} 替换为实际的提供商名称,将 {external-id} 替换为您要查找的用户的外部 ID。如果找到用户,将返回其信息。如果没有找到,将返回 404 错误。