API: E-Mail-Adresse finden oder suchen?

Ich habe einen Diskussionsbeitrag gelesen und dachte, ich hätte SITENAME.com/admin/users/list/all.json?email=some@email.com gefunden – das wäre genau das, was ich brauche: über die Discourse-API (von unserer API aus) zu prüfen, ob unser SSO-Site-Mitglied bei Discourse registriert ist. Aber wie? Der oben genannte Link funktioniert nicht, und wenn ich einfach eine Liste aller Benutzer erhalten könnte, würde ich den Filter/das Ergebnis basierend auf der E-Mail-Adresse umsetzen.

Ich vermute, dass dies stark geschützt oder nicht zugänglich ist – oder gibt es eine Möglichkeit?

Diese Route sollte noch funktionieren (gerade getestet).

Für SSO kannst du auch by-external verwenden.
Siehe Discourse API Docs

@RGJ du hast recht! Es funktioniert tatsächlich!!! Bei meinen Postman-Request-Tests ist etwas kaputtgegangen. :frowning:

Mit einem SuperAgent-Request wie diesem:

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')

konnte ich jedoch die E-Mail-Adressen abrufen.

Entschuldige bitte, aber es wäre schön, eine API-Anfrage zu haben, die einfach true/false zurückgibt, wenn eine E-Mail existiert. Momentan hole ich alle Benutzer (eine Antwort, die etwas umfangreich ist, da sie alle Benutzerinformationen zurückgibt), obwohl ich nur überprüfen möchte, ob die E-Mail existiert – eigentlich möchte ich nur von Discourse ein true/false erhalten, ob der Benutzer dort bereits eingeloggt war, bevor er auf unsere Seite kam.

Mit

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

holst du nicht alle Benutzer ab.

Wow, danke dafür! Das holt also nur einen Benutzer und eine E-Mail-Adresse ab? Passt für mich! Super!!!