Primo accesso per un utente tramite API KEY

Ciao a tutti,

Sto usando Discourse come backend, ma non c’è alcun coinvolgimento dell’interfaccia utente di Discourse. Per utilizzare l’API, sto usando il nome utente e una chiave API globale per effettuare le richieste.
Sto riscontrando 1 problema: ogni volta che un nuovo utente viene creato nel mio provider OIDC (Keycloak), non riesco a utilizzare il suo nome utente nella mia API. Discourse non riconosce l’utente.
Ho provato a eseguire il debug di questo problema e ho capito che Discourse crea anche un utente quando un utente accede con successo da OIDC per la prima volta e mostra un banner nell’interfaccia utente che l’account è stato creato con successo. Solo dopo posso usare il nome utente per effettuare la richiesta API.
Voglio automatizzare questo flusso senza bisogno dell’interfaccia utente. In sostanza, intendo dire che se un utente viene creato sulla mia piattaforma OIDC, senza utilizzare l’interfaccia utente, dovrei essere in grado di utilizzare il suo nome utente e la chiave API globale per effettuare la mia richiesta. Sono disponibile a effettuare chiamate API aggiuntive.

Qualsiasi suggerimento sarà utile.
Grazie in anticipo!!

Come sospetti, dovrai creare l’utente con l’API. Sync DiscourseConnect user data with the sync_sso route potrebbe aiutarti. In caso contrario, vedi Search results for 'create user api' - Discourse Meta, o forse il buon vecchio Ingegneria inversa dell’API di Discourse

3 Mi Piace

DiscourseConnect non funzionerà nel mio caso, perché in un dato momento può essere utilizzato OIDC o Discourse Connect. Ho provato a fare reverse engineering dell’API di Discourse.
L’URL è: https://smallidea.co/u

Ha il seguente payload:
{
name: testuser
email: test@xxxxxx.com
username:discoursetestuser3
password_confirmation:2290e67e2f59d6b9a0edbc735cef0e1d
challenge:598d41761746371257a4c89d5ac61260
timezone:Asia/Calcutta
}

Non riesco a capire i parametri “password_confirmation” e “challenge”. Qualche idea su cosa siano?
Entrambi questi parametri sono dinamici e non c’è un valore fisso che posso passare. È casuale.