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 :
Dans mon controller :Code:
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>
Je ne rentre jamais dans le if. Si je dump ma condition :Code:
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'))) { [...] } }
j'ai un false en retour. Si je dump le token de la requête :Code:dump($this->isCsrfTokenValid('detete' . $property->getId(), $request->get('_token'))); // false
j'ai bien le token présent dans le champs hidden _token quand j'inspecte la page.Code:dump($request->get('_token')) // "zH8HtCRBvdHtlPhUiftWaNSkeKwR7jauHTNCjZq5ChY"
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 :)