Questa guida spiega come trovare un utente di Discourse basandosi sul suo
external_idda un identity provider utilizzando chiamate API.
Livello utente richiesto: Amministratore
Quando si utilizza un sistema di autenticazione esterno, Discourse tiene traccia di due ID utente: lâuser_id di Discourse e un external_id proveniente dallâidentity provider. Se hai bisogno di cercare un utente di Discourse basandoti sullâexternal_id, questo articolo howto è quello che fa per te! Di seguito, imparerai come eseguire questa operazione.
Configurazione API
Innanzitutto, assicurati di aver configurato correttamente una chiave API amministratore. Per maggiori informazioni sulla configurazione e sullâutilizzo dellâAPI di Discourse, consulta la documentazione dellâAPI di Discourse.
DiscourseConnect
Se stai utilizzando DiscourseConnect (precedentemente noto come Discourse SSO), puoi recuperare un utente con la seguente chiamata API:
curl https://myforum.example.com/u/by-external/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
Sostituisci {external-id} con lâID esterno effettivo dellâutente che stai cercando. Se viene trovato un utente, verranno restituite le sue informazioni. In caso contrario, verrĂ restituito un 404.
Altro Provider di Autenticazione
Questo funziona per tutti i metodi principali, cosĂŹ come per i plugin che utilizzano il framework âManagedAuthenticatorâ (inclusi discourse-openid-connect e discourse-oauth2-basic).
Per prima cosa, trova il ânome del providerâ del tuo autenticatore. Questo è normalmente contenuto nellâURL di callback (ad esempio, se lâURL di callback è /auth/oauth2_basic/callback, allora il nome del provider è oauth2_basic).
Quindi puoi recuperare un utente in questo modo:
curl https://myforum.example.com/u/by-external/{provider}/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
Sostituisci {provider} con il nome effettivo del provider e {external-id} con lâID esterno dellâutente che stai cercando. Se viene trovato un utente, verranno restituite le sue informazioni. In caso contrario, verrĂ restituito un 404.