Diese Anleitung erklärt, wie Sie einen Discourse-Benutzer anhand seiner
external_idaus einem Identitätsanbieter mithilfe von API-Aufrufen finden.
Erforderliches Benutzerebene: Administrator
Wenn Sie ein externes Authentifizierungssystem verwenden, speichert Discourse zwei Benutzer-IDs: die Discourse user_id und eine external_id vom Identitätsanbieter. Wenn Sie einen Discourse-Benutzer anhand der external_id nachschlagen müssen, ist dieser #howto-Artikel genau das Richtige für Sie! Unten erfahren Sie, wie Sie diesen Vorgang durchführen.
API-Einrichtung
Stellen Sie zunächst sicher, dass Sie einen Admin-API-Schlüssel korrekt konfiguriert haben. Weitere Informationen zur Einrichtung und Verwendung der Discourse-API finden Sie in der Discourse API-Dokumentation.
DiscourseConnect
Wenn Sie DiscourseConnect (früher bekannt als Discourse SSO) verwenden, können Sie einen Benutzer mit dem folgenden API-Aufruf abrufen:
curl https://myforum.example.com/u/by-external/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
Ersetzen Sie {external-id} durch die tatsächliche externe ID des Benutzers, den Sie suchen. Wenn ein Benutzer gefunden wird, werden seine Informationen zurückgegeben. Andernfalls wird ein 404 zurückgegeben.
Anderer Authentifizierungsanbieter
Dies funktioniert für alle Kernmethoden sowie für Plugins, die das „ManagedAuthenticator“-Framework verwenden (einschließlich discourse-openid-connect und discourse-oauth2-basic).
Finden Sie zunächst den „Anbieternamen“ Ihres Authentifizierers. Dieser befindet sich normalerweise in der Callback-URL (z. B. wenn die Callback-URL /auth/oauth2_basic/callback lautet, dann ist der Anbietername oauth2_basic).
Anschließend können Sie einen Benutzer wie folgt abrufen:
curl https://myforum.example.com/u/by-external/{provider}/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
Ersetzen Sie {provider} durch den tatsächlichen Anbieternamen und {external-id} durch die externe ID des Benutzers, den Sie suchen. Wenn ein Benutzer gefunden wird, werden seine Informationen zurückgegeben. Andernfalls wird ein 404 zurückgegeben.