Bonjour, je débute sur Symfony. J'ai vu que les tokens crsf sont gérés automatiquement sur un formulaire, mais pour faire ma requête DELETE, je dois le vérifier à la main. Ce que j'ai fait. Mais, quand je vérifie si le token est valide, j'ai toujours un false en retour.

Ici dans une liste d'administration d'éléments, je veux qu'ils aient chacun un bouton "Supprimer". Chacun a donc pour bouton le formulaire suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<form method="POST" action="{{ path('admin.property.delete', {id: property.id}) }}">
    <input type="hidden" name="_method" value="DELETE">
    <input type="hidden" name="_token" value="{{ csrf_token('delete' ~ property.id) }}">
    <button>Supprimer</button>
 </form>
Dans mon controller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
/**
 * @Route("/admin/property/{id}", name="admin.property.delete", methods="DELETE")
 */
public function delete(Property $property, Request $request) : Response
 {
     if ($this->isCsrfTokenValid('detete' . $property->getId(), $request->get('_token'))) {
         [...]
     }
 }
Je ne rentre jamais dans le if. Si je dump ma condition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
dump($this->isCsrfTokenValid('detete' . $property->getId(), $request->get('_token'))); // false
j'ai un false en retour. Si je dump le token de la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
dump($request->get('_token')) // "zH8HtCRBvdHtlPhUiftWaNSkeKwR7jauHTNCjZq5ChY"
j'ai bien le token présent dans le champs hidden _token quand j'inspecte la page.

Bref, quelqu'un a t-il une idée de comment vérifier mon token pour que je puisse DELETE dans de bonnes pratiques ?

Merci