Première connexion pour un utilisateur utilisant une clé API

Salut à tous,

J’utilise Discourse en mode backend uniquement, sans aucune implication de l’interface utilisateur de Discourse. Pour utiliser l’API, j’utilise le nom d’utilisateur et une clé API globale pour effectuer les requêtes.
Je rencontre 1 problème : chaque fois qu’un nouvel utilisateur est créé dans mon fournisseur OIDC (Keycloak), je ne peux tout simplement pas utiliser son nom d’utilisateur dans mon API. Discourse ne reconnaît pas l’utilisateur.
J’ai essayé de déboguer cela et j’ai réalisé que Discourse crée également un utilisateur lorsqu’un utilisateur se connecte avec succès via OIDC pour la première fois, et il affiche une bannière sur l’interface utilisateur indiquant que le compte a été créé avec succès. Après cela seulement, je peux utiliser le nom d’utilisateur pour effectuer des requêtes API.
Je souhaite automatiser ce flux sans avoir besoin de l’interface utilisateur. En gros, je veux dire que si un utilisateur est créé sur ma plateforme OIDC, alors sans utiliser l’interface utilisateur, je devrais pouvoir utiliser son nom d’utilisateur et sa clé API globale pour effectuer mes requêtes. Je suis ouvert à l’idée d’appeler des API supplémentaires.

Toute piste sera utile.
Merci d’avance !!

Comme vous le soupçonnez, vous devrez créer l’utilisateur avec l’API. Sync DiscourseConnect user data with the sync_sso route pourrait vous aider. Sinon, consultez Search results for 'create user api' - Discourse Meta, ou peut-être le bon vieil article Ingénierie inverse de l’API Discourse

3 « J'aime »

DiscourseConnect ne fonctionnera pas dans mon cas, car à un moment donné, soit OIDC, soit Discourse Connect peut être utilisé. J’ai essayé de faire de l’ingénierie inverse de l’API discourse.
L’URL est : - https://smallidea.co/u

Elle a la charge utile suivante : -
{
name: testuser
email: test@xxxxxx.com
username:discoursetestuser3
password_confirmation:2290e67e2f59d6b9a0edbc735cef0e1d
challenge:598d41761746371257a4c89d5ac61260
timezone:Asia/Calcutta
}

Je ne parviens pas à comprendre les paramètres “password_confirmation” et “challenge”. Une idée de ce que c’est ?
Ces deux paramètres sont dynamiques et il n’y a pas de valeur fixe que je puisse passer. C’est aléatoire.