Connexion: Nouveau parcours pour les candidats [GEN-2012]#5288
Connexion: Nouveau parcours pour les candidats [GEN-2012]#5288calummackervoy merged 4 commits intomasterfrom
Conversation
|
🥁 La recette jetable est prête ! 👉 Je veux tester cette PR ! |
06b789a to
94fc5da
Compare
|
Tu pourrais juste le gérer avec un query params non ? On pourrait éventuellement verrouiller le champs email quand il est pré-rempli pour forcer à retourner à la page précédente si on veut changer d'adresse email. |
|
@tonial le pb est qu'un utilisateur peut tomber sur cette page en cliquant sur un lien depuis une modale comme celui-ci :
On ne veut pas que l'utilisateur peut déanonymiser l'email si on reçoit Ce ne fait pas actuellement partie des dessins donc on pourrait décider de juste forcer l'utilisateur à remettre l'email sur le seconde écran, mais je me suis démandé s'il vaut l'utilisation d'un clé dans la session ou du JS ? |
| </p> | ||
| <p> | ||
| FranceConnect est la solution proposée par l’État pour sécuriser et simplifier la connexion à vos services en ligne. | ||
| </p> |
There was a problem hiding this comment.
J'ai l'impression qu'une partie de mise à jour de wording (et d'image) pourrait facilement être sortie dans un commit séparé (voir même une PR ?) .
There was a problem hiding this comment.
J'ai choisis un commit séparé cette fois juste pour éviter déranger le métier / UX pendant leur relecture
itou/www/signup/forms.py
Outdated
| self.fields["birthdate"].initial = prior_cleaned_data.get("birthdate") | ||
| self.fields["nir"].initial = prior_cleaned_data.get("nir") | ||
|
|
||
| # self.fields["password1"].help_text = CnilCompositionPasswordValidator().get_help_text() |
1a2afed to
b0a55da
Compare
5262266 to
b30a7a3
Compare
tonial
left a comment
There was a problem hiding this comment.
Désolé, j'avais complètement oublié de repasser sur ta PR.
C'est bon pour moi :)
itou/www/login/views.py
Outdated
| return super().form_valid(form) | ||
|
|
||
| def get_success_url(self): | ||
| return f'{reverse("login:existing_user", args=(self.user.public_id,))}?back_url={reverse("login:job_seeker")}' |
There was a problem hiding this comment.
tu pourrais faire ça ici :
| return f'{reverse("login:existing_user", args=(self.user.public_id,))}?back_url={reverse("login:job_seeker")}' | |
| return add_url_param( | |
| reverse("login:existing_user", args=(self.user.public_id,)), | |
| { | |
| "back_url": reverse("login:job_seeker"), | |
| "email": self.user.email, | |
| }, | |
| ) |
Et dans ExistingUserLoginView tu peux récupérer le query params pour figer le formulaire si c'est bien l'email correspondant au public_id
Tu en penses quoi ?
There was a problem hiding this comment.
J'aime que c'est plus simple que l'utilisation de session et que le lien va marcher si l'utilisateur change son appareil, mais ça va d'envoyer l'adresse dans l'URL ?
J'imagine que la gagne n'est pas digne de l'effort, mais un attaquant pourrait utiliser le lien pour récuperer l'adresse email d'utilisateur.
There was a problem hiding this comment.
On transmets bien l'email dans le query_params login_hint (c'est rendu possible dans la RFC)
Pour moi ce n'est pas un problème car cette url n'a pas vocation à être transmis à quelqu'un d'autre.
Après, ta solution avec la session marche bien, et est déjà codée donc c'est pas gênant (et il y a peu de chance que l'utilisateur change de navigateur en cours de route)
| This template can optionally have the email of the user displayed, if it is safe to do so. | ||
| This is done using the session and comparing the stashed value to the user concerned by this view. | ||
| """ | ||
| stashed_email = self.request.session.get(ITOU_SESSION_JOB_SEEKER_LOGIN_EMAIL_KEY, None) |
Explanations for FranceConnect and France Travail Connect login methods
A new process in which the user submits their email address and is redirected to the correct login method instead of being depended on to choose which service they use to connect. Includes also a graphical redesign, and some redirection options to the registration process.
When the user proves knowledge of their email during the login flow, we store the email entered in the session so that we can pre-fill it for them on the subsequent password form. Not all flows leading to this view involve the user proving their email however, so if the key is not present in the session or it doesn't match the user's public id then it is ignored.
b30a7a3 to
f1ee383
Compare



🤔 Pourquoi ?
Nous rencontrons des difficultés avec les candidats qui sont plusieurs à se partager la même adresse email. Dans un nouveau parcours, l'utilisateur soumet son adresse mail avant d'être rédirigé à la mode de connexion associé à son compte. Les changements visuels correspondent à la maquette rattachée au ticket.
🚨 À vérifier
💻 Captures d'écran