#44 Mot de passe oublié #44

Open
opened 12 months ago by arthur.valin · 1 comments
Owner

Permettre la modification du mot de passe.
Idéalement, il faudrait pouvoir envoyer un mail à l'utilisateur, via le mail qu'il a renseigné.

Il recevrait un lien avec un deeplink (Lien qui permet d'ouvrir directement l'application). Le deeplink ressemblerait à ça : allin://passwordreset?code=CoNsTvUUOsPjX

Cliquer sur le deeplink ouvrirait la page de modification de mot de passe.
Dans le deeplink on a un code unique pour s'assurer de l'identité de l'utilisateur.

Ce code est généré au moment de l'envoi du lien par mail et est stocké temporairement pour identifier chaque utilisateur.

Permettre la modification du mot de passe. Idéalement, il faudrait pouvoir envoyer un mail à l'utilisateur, via le mail qu'il a renseigné. Il recevrait un lien avec un deeplink (Lien qui permet d'ouvrir directement l'application). Le deeplink ressemblerait à ça : `allin://passwordreset?code=CoNsTvUUOsPjX` Cliquer sur le deeplink ouvrirait la page de modification de mot de passe. Dans le deeplink on a un code unique pour s'assurer de l'identité de l'utilisateur. Ce code est généré au moment de l'envoi du lien par mail et est stocké temporairement pour identifier chaque utilisateur.
arthur.valin added the API label 12 months ago
arthur.valin added this to the Kanban project 12 months ago
lucas.evard self-assigned this 12 months ago
Poster
Owner

@lucas.evard

On peux utiliser un compte gmail pour l'envoi de mail apparemment :
https://stackoverflow.com/questions/66571524/sending-emails-from-ktor-application

Pour les credentials, faudrait le faire passer par la CI et le récupérer depuis une variable d'environnement. Et essayer d'avoir un mdp vraiment sécurisé.

Pour gmail, on aura peut-être un problème car google refuse l'usage du service par des apps pas sécurisées, il faudrait faire un "app password".
https://support.google.com/accounts/answer/185833
https://www.youtube.com/watch?v=BFTCVC33qhQ&t=374s


Quand l'utilisateur demande à changer de mot de passe, ça génère un code complexe gardé dans une map code => email. Ensuite, on passe ce code dans le mail.
Quand l'utilisateur est sur la page de changement de mot de passe, il envoie une requête avec le nouveau mot de passe, l'email associé et le code. On vérifie si l'email est bien associée à ce code là, puis on change le mdp, sinon on retourne une erreur.

Les codes sont valables 10 minutes (à décider), puis sont supprimés.
Pour faire ça, on peux lancer une coroutine au moment de la création du code, on fait un delay de 10 minutes puis on supprime l'entrée.

@lucas.evard On peux utiliser un compte gmail pour l'envoi de mail apparemment : https://stackoverflow.com/questions/66571524/sending-emails-from-ktor-application Pour les credentials, faudrait le faire passer par la CI et le récupérer depuis une variable d'environnement. Et essayer d'avoir un mdp vraiment sécurisé. Pour gmail, on aura peut-être un problème car google refuse l'usage du service par des apps pas sécurisées, il faudrait faire un "app password". https://support.google.com/accounts/answer/185833 https://www.youtube.com/watch?v=BFTCVC33qhQ&t=374s --- Quand l'utilisateur demande à changer de mot de passe, ça génère un code complexe gardé dans une map code => email. Ensuite, on passe ce code dans le mail. Quand l'utilisateur est sur la page de changement de mot de passe, il envoie une requête avec le nouveau mot de passe, l'email associé et le code. On vérifie si l'email est bien associée à ce code là, puis on change le mdp, sinon on retourne une erreur. Les codes sont valables 10 minutes (à décider), puis sont supprimés. Pour faire ça, on peux lancer une coroutine au moment de la création du code, on fait un delay de 10 minutes puis on supprime l'entrée.
Sign in to join this conversation.
Loading…
There is no content yet.