-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(user): authentification via un lien magique envoyé par email #804
Conversation
5a0c264
to
a581fcb
Compare
130e2bb
to
2b8ddfe
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ça me parait bien !
Je pense que ça vaut le coup d'avoir un test sur l'envoi de lien et son sur ce qui se passe quand on clique dessus + vérifier qu'on ne peut pas réutiliser le même lien après s'être déconnecté (normalement le token dépend des camps de user, donc quand on change last_login ça devrait rendre les token précédemment générés obsolète, mais autant s'en assurer)
Je ne sais pas si c'est utile de vérifier si les tokens ont une durée de vie par contre.
Et un test qui rend explicite si un utilisateur ProConnect peut utiliser un lien magique serait sans doute utile au cas où.
9a74169
to
a9c801e
Compare
334f141
to
691a0a5
Compare
02bc25b
to
a7bfae4
Compare
036b3bc
to
95e956e
Compare
df6251e
to
4556d2b
Compare
4556d2b
to
35a9a3c
Compare
🥁 La recette jetable est prête ! 👉 Je veux tester cette PR ! |
35a9a3c
to
ef5e47b
Compare
🤖 I have created a release *beep* *boop* --- ## [2.17.0](v2.16.0...v2.17.0) (2024-11-14) ### Features * ajout d'une balise youtube dans le markdown ([#810](#810)) ([adbff17](adbff17)) * **forum_conversation:** suppression du triage avant de pouvoir poser une question ([#818](#818)) ([f1b64c6](f1b64c6)) * **stats:** ajout de la colonne categorie dans les stats des fiches pratiques ([#812](#812)) ([c072b5f](c072b5f)) * **user:** authentification via un lien magique envoyé par email ([#804](#804)) ([64e04a3](64e04a3)) * **user:** basculer l'authentification vers ProConnect ([#731](#731)) ([5429fce](5429fce)) ### Bug Fixes * **attachment:** affichage des liens vers les fichiers des messages ([#806](#806)) ([7c34605](7c34605)) * **metabase:** deplanification d'une tâche résiduelle ([#808](#808)) ([692a274](692a274)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Description
🎸 En complément de l'authentification via
Pro Connect
(#731), permettre à un utlisateur de s'authentifier via un lien magique envoyé par email.🎸 Nécessaire pour les utilisateurs n'appartenant pas à une organisation, car ils ne peuvent pas utiliser
Pro Connect
🐻 La vue principale de connexion est désormais
LoginView
. Elle permet de recevoir un magic link ou de se connecter avec ProConnect.🐻 Si l'utilisateur se connecte avec un lien magic, une variable est positionnée dans sa session pour determiner le mécanisme de déconnection à actionner.
🐻
LoginView
n'est plus accessible si l'utilisateur est authentifié.Un utilisateur demande un magic link, puis se connecter avec ProConnect, puis clique sur le magic link. La déconnection pourrait être celle du magic link (pas de déco ProConnect). Pas d'effet de bord catastrophique attendu.
Type de changement
🎢 Nouvelle fonctionnalité (changement non cassant qui ajoute une fonctionnalité).
🚧 technique
Points d'attention
🦺 ajout de la méthode
clean_next_url
pour limiter les risques sur les redirections🦺 en dev, les magic link sont enregistrés dans
EmailSentTrack
🦺 ref https://www.honeybadger.io/blog/options-for-passwordless-authentication-in-django/
🦺 ref https://stackoverflow.com/a/46236585
🦺 pour une PR suivante : ajouter le contrôle sur
BlockedEmail
et surBlockedDomainName
pour prévenir d'eventuels spammersCaptures d'écran (optionnel)
LoginView
CreateUserView
Login Link Sent