如何在控制器中手动验证一个CSRF Token

3.4 版本
维护中的版本

有时,你希望在action中使用CSRF防护,而不是使用Symfony表单组件。如果,你实现的是一个DELETE action,你可以使用isCsrfTokenValid()方法来检查CSRF token的有效性:

1
2
3
4
5
6
7
8
9
10
11
public function deleteAction()
{
    if ($this->isCsrfTokenValid('token_id', $submittedToken)) {
        // ... do something, like deleting an object
        // ... 做一些事,比如删除一个对象
    }
// isCsrfTokenValid() is equivalent to:
// $this->get('security.csrf.token_manager')->isTokenValid(
//     new \Symfony\Component\Security\Csrf\CsrfToken\CsrfToken('token_id', $token)
// );
}

本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。

登录symfonychina 发表评论或留下问题(我们会尽量回复)