Bonjour à tous,
Sur mon site, j'ai une page où les visiteurs peuvent s'enregistrer et se créer un compte en ROLE_USER, qui est stocké dans la table user en base.
Un fois connecté avec ce compte, où j'ai paramétré dans mon security.yaml always_remember_me: true, je vois bien dans le profiler le mail qui sert d'identifiant.
Sur une page dans mon espace connecté, je peux modifier mon profil dans un formulaire qui me permet de modifier chaque champ de mon user en base (email, mot de passe, nom, prénom, tel...).
Je fais exprès de saisir des valeurs bloquantes (saisies trop longues par rapport aux assert de mon champ, mot de passe qui ne respecte pas mes règles (longueur minimale, minimum 1 minuscule, 1 majuscule, et 1 autre caractère), 2 champs du mot de passe en repeatedtype qui ne correspondent pas...).
Pour ce test, je ne change pas l'email, je garde celui qui est connecté.
Au premier clic sur mon bouton pour envoyer mon formulaire, j'ai bien le flashbag de mon controller qui me dit que mes saisies sont invalides, ainsi que l'erreur de mon assert.
Je ne change rien à mes saisies, je laisse mes valeurs bloquantes, et j'envoie une 2eme fois mon formulaire.
Résultat attendu : j'ai le même message qu'au premier envoi.
Résultat obtenu : j'ai un redirect vers ma page de login, et je ne suis plus connecté.
Dans le profiler, je vois bien le redirect, et dans le Response Headers, je vois :
Et je suis bloqué là, je ne m'en sors pas !set-cookie "REMEMBERME=deleted; expires=Sun, 29-Aug-2021 15:43:53 GMT; Max-Age=0; path=/; httponly; samesite=lax"
Vous avez une idée pourquoi mon REMEMBERME est supprimé ?
Je pense à une piste : Est ce que c'est parce que dans mon formulaire l'email est éditable, ce qui fait que je perds ma connexion ? Si c'est ça, comment gérer ce cas ?
J'espère que mon problème est compréhensible, si ce n'est pas clair, dites le moi.
Si ça vous est utile, je peux mettre des km de code, pour l'instant, voici mon security.yaml :
Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 security: enable_authenticator_manager: true password_hashers: Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'sha512' App\Entity\User: algorithm: sha512 role_hierarchy: ROLE_ADMIN: ROLE_USER providers: app_user_provider: entity: class: App\Entity\User firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: lazy: true provider: app_user_provider form_login: login_path: app_login check_path: app_login enable_csrf: true username_parameter: email password_parameter: password logout: path: /logout target: index remember_me: secret: '%kernel.secret%' always_remember_me: true access_control: - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/profil, roles: ROLE_USER } - { path: ^/admin, roles: ROLE_ADMIN }
Merci d'avance pour votre aide !
Partager