Skip to content

Commit

Permalink
feature #5572 4668 document isCsrfTokenValid (snoek09)
Browse files Browse the repository at this point in the history
This PR was squashed before being merged into the 2.6 branch (closes #5572).

Discussion
----------

4668 document isCsrfTokenValid

| Q             | A
| ------------- | ---
| Doc fix?      | yes
| New docs?     | yes
| Applies to    | 2.6
| Fixed tickets | #4668

See original PR #5325 for comments.

Commits
-------

11383f8 4668 document isCsrfTokenValid
  • Loading branch information
wouterj committed Jul 29, 2015
2 parents 41c7059 + 11383f8 commit 85dc294
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion book/controller.rst
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ If you want to redirect the user to another page, use the ``redirectToRoute()``
}

.. versionadded:: 2.6
The ``redirectToRoute()`` method was added in Symfony 2.6. Previously (and still now), you
The ``redirectToRoute()`` method was introduced in Symfony 2.6. Previously (and still now), you
could use ``redirect()`` and ``generateUrl()`` together for this (see the example above).

Or, if you want to redirect externally, just use ``redirect()`` and pass it the URL::
Expand Down Expand Up @@ -803,6 +803,28 @@ Just like when creating a controller for a route, the order of the arguments of
order of the arguments, Symfony will still pass the correct value to each
variable.

Validating a CSRF Token
-----------------------

Sometimes you want to use CSRF protection in an action where you don't want to use the
Symfony Form component.

If, for example, you're doing a DELETE action, you can use the
:method:`Symfony\\Bundle\\FrameworkBundle\\Controller\\Controller::isCsrfTokenValid`
method to check the CSRF token::

if ($this->isCsrfTokenValid('token_id', $submittedToken)) {
// ... do something, like deleting an object
}

.. versionadded:: 2.6
The ``isCsrfTokenValid()`` shortcut method was introduced in Symfony 2.6.
It is equivalent to executing the following code::

use Symfony\Component\Security\Csrf\CsrfToken;

$this->get('security.csrf.token_manager')->isTokenValid(new CsrfToken('token_id', 'TOKEN'));

Final Thoughts
--------------

Expand Down

0 comments on commit 85dc294

Please sign in to comment.