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 : 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
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 !