다음은 많은 분들이 경험해 보셨을 사용 사례입니다:
- Discourse에 여러 사용자가 있음
- Discourse 사용자를 생성하고 그룹 멤버십을 관리하는 API를 사용하는 외부 시스템(서비스 제공업체, Drupal)이 있음
- Drupal에는 부분적으로 겹치는 사용자 집합이 있음. 즉, 동일한 이메일 주소를 가진 사용자가 Discourse와 Drupal 양쪽에 존재하지만 연결되어 있지 않음
- 사용자가 SSO를 통해 Discourse에 액세스하는 대신 이메일에 의존할 수 있으므로, Drupal은 사용자를 액세스할 때 사용자를, 그룹 및 멤버십을 동기화하기 위해 API를 사용
현재 동작:
- 동일한 이메일을 가진 Discourse 사용자가 이미 존재하기 때문에 Discourse가 Discourse 사용자를 생성하기 위한 API 호출을 거부하는 경우가 있음
원하는 동작:
- 이메일을 통해 기존 Discourse 사용자를 Drupal 사용자와 연결
제안된 해결책:
- 일치하는 이메일 주소를 가진 사용자를 가져오기 위해 Discourse의
/admin/users/list/all.json?email=$emailAPI 엔드포인트를 쿼리 - 일치하는 사용자가 존재하는 경우
- 기존 사용자를 연결(Drupal 측)
- 그렇지 않으면
- 새로운 Discourse 사용자 생성
질문
- 이 해결책이 합리적인지, 아니면 더 나은 방법이 있는지?
- API 쿼리가 올바르게 형성되었는지?
all.json도email쿼리 문자열 매개변수도 문서화되어 있지 않고, 예도 거의 찾지 못했지만, 이 게시물은 이것이 최선의 방법임을 시사하는 것 같습니다.