Génération d'un e-mail de connexion via API

Je cherche à déclencher l’envoi d’un e-mail de connexion sans mot de passe à un utilisateur depuis l’API (qu’ils recevraient s’ils cliquaient eux-mêmes sur « se connecter par e-mail »), et cela ne semble pas possible. J’ai utilisé la technique de « rétro-ingénierie de l’API » pour essayer d’y accéder, mais l’authentification avec une clé API globale renvoie simplement la page d’accueil et ne déclenche rien (et sans la clé API, il semble qu’elle nécessite la définition de cookies de session, etc.).

Ce que je cherche à réaliser est un processus d’inscription avec le moins d’étapes possible ; comme les utilisateurs s’inscrivent via un autre système, je crée les utilisateurs dans Discourse, et je veux qu’ils reçoivent un e-mail avec le lien de connexion temporaire pour y accéder directement. Tout cela vise à réduire les frictions dans un processus déjà assez fastidieux !

Existe-t-il une astuce pour faire fonctionner cela via l’API ?

Dans ce cas, la solution appropriée serait une configuration de connexion invisible utilisant DiscourseConnect.

Avez-vous essayé :

curl -X POST https://meta.discourse.org/u/email-login \
-H "Api-Key: longapikeyhere" \
-H "Api-Username: system" \
--data-raw 'login=email%40gmail.com'

?

1 « J'aime »

Merci beaucoup pour votre réponse Falco. En utilisant spécifiquement curl exactement comme vous le suggérez, j’obtiens une réponse « Vous êtes redirigé » qui me renvoie à la page d’accueil. Aucun e-mail de connexion n’est déclenché. J’obtenais un résultat similaire avec l’outil que j’utilisais - qui suivait la redirection vers la page d’accueil.

Je ne veux pas utiliser DiscourseConnect car la seule connexion requise après l’inscription est pour Discourse.

J’ajouterai également que, en tant qu’utilisateur de longue date (et admirateur) des forums Discourse, c’est ma première incursion de l’autre côté - et l’API / les webhooks sont tout simplement géniaux ; très faciles à utiliser et très puissants.

2 « J'aime »

Ce point de terminaison n’est en effet pas disponible pour les appels API pour le moment. Lorsque vous y transmettez des clés API, vous tombez sur la redirection ici :

Et vous ne pouvez pas l’appeler sans clés API car cette route est soumise à la protection CSRF :verify_authenticity_token.

2 « J'aime »

Merci, c’est clair et je comprends la logique. J’apprécie vraiment vos réponses.

1 « J'aime »