🎸 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é.
⚠️ edge case
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
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 utiliserPro 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é.⚠️ edge case 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 dansEmailSentTrack
🦺 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