Je sais qu'il existe le moyen habituel de rendre l'entrée cachée du jeton CSRF avec form_rest
, mais existe-t-il un moyen de rendre uniquement l' entrée CSRF elle-même ? J'ai remplacé {% block field_widget %}
dans le thème pour afficher un texte supplémentaire. Mais comme le jeton CSRF est également rendu dans le champ de saisie et que j'ai un morceau de texte dont je n'ai pas besoin à côté d'un champ masqué. J'aimerais donc le rendre séparément avec un argument qui lui dit de ne pas rendre ce texte.
Réponses
Trop de publicités?Si vous avez un objet formView
, vous pouvez le rendre à l'aide de la fonction Twig :
{{ form_widget(formView._token) }}
Si ce n'est pas le cas, vous pouvez rendre le jeton sans utiliser directement l'objet de formulaire :
<input type="hidden" name="token" value="{{ csrf_token('some-name') }}">
Fonctionne sous Symfony 2.x et 3.x
Pour valider le token, vous pouvez utiliser le code suivant dans votre contrôleur (Symfony 3.x) :
$submittedToken = $request->request->get('token');
if ($this->isCsrfTokenValid('some-name', $submittedToken)) {
// ... do something,
}
n'a pas trouvé de solution a fonctionné pour moi, trouvé et testé et a fonctionné pour mon Simfony3 value="{{ _token }}" dans l'exemple
<form name="form" method="post" action="{{ path('blog_show', { 'id': blog.id }) }}">
<input name="_method" value="DELETE" type="hidden">
<input class="btn btn-danger" value="Delete" type="submit">
<input id="form__token" name="form[_token]" value="{{ _token }}" type="hidden">
</form>
plus d'informations sur scrf peuvent être consultées ici : Créer des formulaires manuellement dans Symfony2, mais toujours utiliser son CSRF et isValid() de manière fonctionnelle