Directus reset password

Bonjour !
Pour vous expliquer mon probléme, j’ai setup mon serveur directus avec envoi de mail et tout se passe parfaitement !
Lorsque je lance ma requete pour une demande de changement de mot de passe je recois bien un mail avec le lien que j’ai initialiser dans le .env de mon directus mais lorsque je clique dessus, cela me renvoie sur une url inexistante, je n’arrive pas a trouvé le bon url a mettre dans mon .env car sur les tutos je vois que cela renvoie sur une page directus toute faite qui a l’air de tout gerer, merci d’avance
L’url dans mon .env est « https://monUrl/auth/password/reset »

Bonjour @Unloo,

Je n’ai pas eu l’occasion de tester cette fonctionnalité, mais de ce que j’en ai compris, l’url que tu enregistre dans ton .env est une sécurité qui permet de s’assurer que l’url que tu renseigne via l’api est autorisée.

Pour utiliser une url custom, il faut que tu envoie l’url de ton serveur via l’api dans le paramètre reset_url

Cette url doit être renseignée dans ton fichier .env.

Par contre il faut que tu gère toi le tocken qui sera passé en paramètre de ton reset_url, via POST /auth/password/reset dans la doc.

Ce fonctionnement est similaire pour les invitation.

Bonjour à tous,
je relance au cas ou quelqu’un aurait trouvé une solution.
J’aimerai également pouvoir envoyer un lien à l’utilisateur, mais le seul mail qu’il reçoit est un lien qui va « nul part ».J’aimerai pouvoir mettre ça en place mais je ne vois pas la solution.

Coucou @PapaRoack,

Je suis dans le même cas que toi je pense. J’ai configuré mon serveur pour envoyer des mails de réinitialisation du mot de passe. Cela fonctionne bien. Mais dans le mail, quand je clique sur le lien de réinitialisation j’ai une page web avec une erreur 404 :triumph:
Il y a un détail qui nous échappe je pense, on a pas dû aller au bout de la démarche.
Si quelqu’un qui a déjà mis en place ce « Password reset » pouvait nous éclairer :bulb::slightly_smiling_face:

Merci à vous :pray:

Oui voilà exactement.
Je pense avoir compris la démarche:
-ajouter la variable au .env, en indiquant une url autorisée.
-joindre le token utilisateur (je ne vois pas lequel car il n’est pas connecté)

Mais aucune idée de comment mettre cela en place.

Hello @PapaRoack et @Behache , on avait eu un échange sur le sujet l’année dernière sur le forum et @mbritto avait fournit ces éléments pour aider sur le sujet :

Peut être que ca pourra vous aider :slight_smile:

2 « J'aime »

Merci pour le lien @Xababa_Dalabama, ça aide effectivement.

Mais le gros de ma réflection est sur la liste des url à ajouter, il faut créer une page avec formulaire manuellement ou bien Directus fournit lui même un endpoint :thinking::face_with_raised_eyebrow:

Bonjour,

Je me permets de relancer cette discussion.
J’ai le meme soucis que @Behache, je reçois bien le mail de reset mais le lien ne me mène nul part…ce qui semble logique car je n’ai rien paramétré de plus.

C’est la que je bloque, je ne comprends pas quel URL utiliser. Faut-il créer nous même une page ?
Que faut-il renseigner dans PASSWORD_RESET_URL_ALLOW_LIST?
Et dans PUBLIC_URL ?

Quelqu’un aurait une solution et explication à nous apporter ?

Merci !

Fabio

Bonjour,

il faut envoyer une requête via un formulaire/lien spécifique type ‹ oubli de mot de passe › côté front, vers l’URL : POST /auth/password/request. Cette requête doit contenir l’email de l’utilisateur.
Directus va créer un mail avec un lien spécifique avec un token de reset. Le tout est directement géré par directus (donc le mail est formaté directus, on peut changer ça en créant un template spécifique pour le design et la langue du message).
Pour que le mail contienne le bon lien, il faut spécifier à directus le bon lien de reset via : PASSWORD_RESET_URL_ALLOW_LIST (sinon le lien de reset dans le mail ne marchera pas et la fonction non plus).

Normalement, il n’y a rien d’autre à faire.
La doc :

Il faut, bien entendu, avoir un service d’envoi d’email fonctionnel. Un simple SMTP d’un mail suffit, attention aux nombres d’envois limités selon les fournisseurs. sinon faut passer par des services tiers comme l’explique Maxime.

Salut,
Merci pour ta réponse.

Donc si j’ai bien compris je dois créer une page qui fera office de formulaire pour réinitialiser le mot de passe et je mets l’URL de cette page dans PASSWORD_RESET_URL_ALLOW_LIST ?

Non, enfin oui, mais pas pour tout :slight_smile:

tu fais une page qui envoie une requête vers le ‹ POST /auth/password/request › qui contient le mail de l’utilisateur. (sur cette page, tu peux demander le mail qui servira à reset le password par exemple. si le mail est dans la base - donc un utilisateur enregistré - il sera envoyé, sinon non. C’est une mesure de sécurité.)
Le PASSWORD_RESET_URL_ALLOW_LIST sert à activer la fonctionnalité et créer le lien qui sera envoyé par mail avec le token