[6.4] Perte de session selon navigation, message jeton CSRF invalide
Bonjour,
Je bloque sur un problème, ce n'est peut être qu'une histoire de paramétrage dans security.yaml, mais je ne trouve pas.
Sur mon site, j'ai des pages accueil, contact, admin...
Pour toutes les pages admin, il faut être logué avec le mail et le mdp, ça fonctionne bien. Et j'ai un remember me.
La page contact est un formulaire, qui envoie un mail à sa soumission.
Voici mon problème :
Cas 1 : cas ok
Je ne suis pas connecté en admin.
je vais sur la page contact.
Je saisis le formulaire et valide.
Pas de problème, le mail est envoyé.
Cas 2 : cas ok
Je suis connecté en admin.
je suis sur une page admin et vais sur la page contact.
Je saisis le formulaire et valide.
Pas de problème, le mail est envoyé.
Cas 3 : cas ko
Je suis connecté en admin.
Je vais sur une autre page visiteur, par exemple accueil.
je vais sur la page contact -> J'ai une valeur du token.
Je saisis le formulaire et valide.
J'ai le message "Le jeton CSRF est invalide. Veuillez renvoyer le formulaire." -> J'ai une autre valeur du token.
Je revalide le formulaire, le mail est envoyé.
En repassant pas la page d'accueil, je perds ma session, et ma page contact crée un nouveau token, d'où le message csrf invalide et l'obligation de renvoyer le formulaire.
Je ne trouve pas comment corriger ce problème, vous avez des idées svp ?
Je suppose que ça vient de mon security.yaml :
Code:
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
| security:
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
property: email
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: app_logout
target: index
remember_me:
secret: '%kernel.secret%'
access_control:
- { path: ^/login$, roles: PUBLIC_ACCESS }
- { path: ^/admin, roles: ROLE_ADMIN } |
Merci d'avance pour votre aide !