Bonjour les amis·es,

je viens ici car je n'arrive pas à comprendre comment faire ce que je veux faire.
J'utilise api platform 2.7 et symfony 6.1.
J'ai une entité User qui permet d'avoir un utilisateur (email, firstname, lastname) qui implement UserInterface et PasswordAuthenticatedUserInterface.
J'ai donc 2 colonnes :
$password => password hasher
$plainPassword => password non hasher
et la fonction eraseCredentials() qui permet de mettre à null le plainPassword.

Ce que je veux faire

Je voudrais faire 2 nouvelles routes :
/auth/password/reset
Cette route permet de générer un token et d'envoyer un email avec un lien à l'utilisateur.

/auth/password/{user_id}/{token}
Cette route permet de faire le changement de mot de passe avec sa validation via les asserts de la colonne plainPassword de l'entité User.

Ce que j'obtiens

Pour l'instant,
j'ai un controller avec 2 routes et 2 fonction:

#[Route('/auth/password/reset', name: 'aut_password_reset', methods: ['POST'])]
#[Route('/auth/password/{user_id}/{token}', name: 'auth_password_confirm', methods: ['POST'])

Il n'y a pas de liaison avec api platform (de ce que j'ai compris)

Mes questions sont:

Q1: Comment trigger le UserDataProvider lors du changement du mot de passe ?

Q2: Est ce qu'utiliser l'OpenApiFactory est correcte pour ajouter ces 2 routes ?

Q3: Il y a un moyen d'utiliser api platform pour faire ce genre de custom process ?

Si vous avez des pistes ou des exemples, je veux bien regarder.

Merci beaucoup.

Aucune réponse