这是用例,我相信很多人都遇到过:
- Discourse 中有一堆用户
- 有一个外部系统(服务提供商、Drupal)使用 API 创建 Discourse 用户并管理组成员资格
- Drupal 具有部分重叠的用户集。即,电子邮件地址相同的用户存在于 Discourse 和 Drupal 中,但未关联
- Drupal 使用 API 同步用户、组和成员资格,因为用户可能永远不会使用 SSO 访问 Discourse,而是依赖电子邮件
当前行为:
- Discourse 有时会拒绝创建 Discourse 用户的 API 调用,因为已存在具有相同电子邮件的 Discourse 用户
期望行为:
- Discourse 通过电子邮件将现有 Discourse 用户与 Drupal 用户关联起来
建议解决方案:
- 查询 discourse
/admin/users/list/all.json?email=$emailAPI 端点以获取具有匹配电子邮件地址的任何用户 - 如果匹配用户存在
- 连接现有用户(Drupal 端)
- 否则
- 创建新的 Discourse 用户
问题
- 这似乎是一个合理的解决方案,还是有更好的方法?
- API 查询是否正确?
all.json和email查询字符串参数均未记录,我发现的示例很少,但此帖子似乎表明这是最佳方法。