如何在树枝中渲染CSRF输入?

2022-08-30 11:14:01

我知道有通常的方法来渲染CSRF令牌隐藏输入,但是有没有办法渲染CSRF输入本身?我已经覆盖了主题以呈现一段额外的文本。但是由于CSRF令牌也在输入字段中呈现,并且我在隐藏字段旁边得到了一段我不需要的文本。因此,我想用一个参数单独呈现它,告诉它不要呈现这个文本。form_rest{% block field_widget %}


答案 1

你可以用{{ form_widget(formView._token) }}


答案 2

如果你有对象,你可以使用Twig函数渲染它:formView

{{ form_widget(formView._token) }} 

如果您还没有 - 您可以直接使用表单对象来呈现令牌:

<input type="hidden" name="token" value="{{ csrf_token('some-name') }}">

适用于 Symfony 2.x 和 3.x

要验证令牌,您可以在控制器 (Symfony 3.x) 中使用以下代码:

$submittedToken = $request->request->get('token');

if ($this->isCsrfTokenValid('some-name', $submittedToken)) {
    // ... do something,
}

推荐