API로 이메일 주소를 찾거나 검색할 수 있나요?

디스코urses 포스트를 읽었는데, 내가 필요로 하는 SITENAME.com/admin/users/list/all.json?email=some@email.com라는 것을 찾은 줄 알았습니다. 이는 디스코urses API를 통해(우리의 API에서) SSO 사이트가 디스코urses 멤버인지 확인하는 것이 목적입니다. 하지만 위 링크가 작동하지 않고, 단순히 모든 사용자의 목록을 가져올 수 있다면 이메일 주소 기준으로 필터링/결과를 구현할 수 있을 것 같습니다.

이것이 매우 보호되어 있거나 접근할 수 없는 것일까요? 아니면 방법이 있을까요?

그 라우트는 여전히 작동할 것입니다(방금 테스트했습니다).

SSO의 경우 by-external도 사용할 수 있습니다.
Discourse API Docs 를 참고하세요.

@RGJ 말씀이 맞습니다! 실제로 작동하네요!!! 제 Postman 요청 테스트에 문제가 있었던 것 같습니다. :frowning:

하지만 SuperAgent 요청을 이렇게 사용했을 때:

let res = await superagent.get(`${this.baseUrl}/admin/users/list/active`)
          .query({show_emails: true})
          .set('Api-Key', this.apiKey)
          .set('Api-Username', this.defaultDiscourseUser)
          .set('Content-Type', 'application/json')
          .set('Accept', 'application/json')

이메일을 가져올 수 있었습니다.

죄송합니다. 다만 이메일이 존재하는지 단순히 true/false를 반환하는 API 요청이 있으면 좋겠습니다. 현재는 모든 사용자 정보를 반환하는 다소 무거운 응답으로 전체 사용자를 가져오고 있는데, 제가 원하는 것은 이메일 존재 여부 확인뿐입니다. 사실 사용자가 우리 사이트로 오기 전에 Discourse에 먼저 로그인했는지 확인하기 위해 true/false만 받으면 됩니다.

superagent.get(`${this.baseUrl}/admin/users/list/all.json?email=${emailAddress}`)

이 코드는 모든 사용자를 가져오지 않습니다.

와, 감사합니다! 사용자 한 명과 이메일 주소만 입력하면 되는 건가요? 저한테는 딱 좋습니다! 최고예요!!!