Symfony 4 - 如何在不构建表单的情况下添加 csrf 令牌?

2023-12-29

我正在这里阅读教程

https://symfony.com/doc/current/form/csrf_protection.html https://symfony.com/doc/current/form/csrf_protection.html

如何添加 csrf 令牌。它说要使用

form_end()

在模板中。但这不起作用,给出错误:

类型错误:函数参数太少 Symfony\Component\Form\FormRenderer::renderBlock(), 0 传入 E:\projektai\php projektai\htdocs\mokomieji\symfony_4_demo\var\cache\dev\twig\bb\bb2248f7be504240fcc2ab43dabf593090ebc4c897ce72b1a979082d62914b47.php 在第 48 行,预计至少有 2 个

这是显示如何修复的答案,但仅当您构建了表单对象时:

Symfony 类型错误:函数 FormRenderer::renderBlock() 的参数太少 https://stackoverflow.com/questions/45568847/symfony-type-error-too-few-arguments-to-function-formrendererrenderblock

在没有表单对象的情况下如何做到这一点?这是从登录文档页面登录:

{% if error %}
    <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}

<form action="{{ path('login') }}" method="post">
    <label for="username">Username:</label>
    <input type="text" id="username" name="_username" value="{{ last_username }}" />

    <label for="password">Password:</label>
    <input type="password" id="password" name="_password" />

    <button type="submit">Login</button>

{{  form_end() }}

您可以使用助手 twig 功能csrf_token如文档中所述here https://symfony.com/doc/current/security/csrf_in_login_form.html#rendering-the-csrf-field,例如:

 <input type="hidden" name="_csrf_token"
        value="{{ csrf_token('authenticate') }}"
    >

更多帮助this https://stackoverflow.com/a/17951493/2270041 answer.

UPDATE:

其他策略:从控制器传递:

    $tokenProvider = $this->container->get('security.csrf.token_manager');
    $token = $tokenProvider->getToken('example')->getValue();

希望这有帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony 4 - 如何在不构建表单的情况下添加 csrf 令牌? 的相关文章

  • Symfony Doctrine 数据类型仅适用于 findBy 不适用于 querybuilder

    我有自定义数据类型 它在使用 FindBy 时按预期工作 但在使用查询生成器时却不然 很抱歉这篇文章很长 但我认为更多信息应该有所帮助 这与这个未回答的问题相同 学说 2 自定义类型 https stackoverflow com ques
  • Symfony 2 FOSUserBundle 与产品表的关系

    如果之前有人问过这个问题 我提前道歉 我已成功设置 FOSUserBundle 我正在尝试设置 http symfony com doc current book doctrine html http symfony com doc cur
  • 使用 javascript 而非 jQuery 的简单 ajax 表单

    我正在使用一个表单 其标记我无法更改且无法使用 jQuery 目前 该表单将结果发布到新窗口 是否可以将其更改为 ajax 表单 以便在提交时显示结果而不更改任何标记 将结果 标记 从结果页面拉回到表单页面 这是表单的标记
  • 使用 Symfony 表单上传多个文件

    UPDATED在我的 Symfony 项目中 我能够上传单个图像 现在我正在尝试上传多个图像 class ImageFile extends AbstractType param FormBuilderInterface builder p
  • Rails f.check_box 设置选中/未选中值

    所以我在 Rails 中得到了一个带有复选框的表单助手 我希望该复选框在选中或取消选中时具有 thatvalue 或 thisvalue 值 我还没有找到如何设置它的地方 f check box field 我发现了类似的东西 但它不起作用
  • 在node.js中使用pug在表单“post”之后发送空的{}

    我正在尝试使用 fetch 和以下 pug 代码通过 post 将表单数据从登录页面传递到登录页面 form id form login input type text name email value placeholder Tu ema
  • PHP - 存储和计算无线电输入的总分

    我设计了一个基于网络的小型系统 其中有一个学校评估表 可以向可以访问该系统的特定用户询问一些问题 并且输入将是单选类型 1或2或3或4 该代码正在运行 可以将输入插入数据库 但我不知道计算总分并将其存储在数据库中的正确查询 这是当前正在运行
  • 更改 WhiteOctober TCPDF 捆绑包配置值

    我已经开始在我的 symfony 项目中使用 WhiteOctober TCPDF 包 但我不知道如何更改默认配置值 例如页面格式 我尝试将其放入我的 config yml 中 white october tcpdf tcpdf k tcp
  • Angular7:NullInjectorError:没有 FormGroup 的提供者

    我真的很沮丧 因为我不知道发生了什么 今天早上一切正常 就在我进行一些更改以将 ReactiveForm 中的 2 个表单合并在一起之前 现在我在浏览器中收到以下错误 错误 StaticInjectorError AppModule For
  • 使用 Dojo 富文本编辑器提交表单

    有人知道如何提交包含 Dojo 富文本编辑器的表单吗 我尝试将 name 属性添加到用 dojoType dijit Editor 装饰的元素中 但是 我在接收过程中没有看到任何 HTML 我已经检查了文档 但没有看到任何明确的示例 除了将
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾
  • 学说 dbal querybuilder 作为准备好的语句

    我正在尝试创建一个 Doctrine DBAL 查询生成器对象并在其中设置一个参数 使用 postgres db dbal 2 3 4 原则 connection this gt em gt getConnection qb connect
  • 无法打开输入文件应用程序/控制台

    我安装了 wamp 服务器和 Symfony2 框架的副本 我正在尝试使用以下命令创建一个捆绑包 php app console generate bundle nampespace IDP IDP Bundle format yml 我的
  • 如何在 Symfony2 中检查表单构建器中的用户角色?

    好的 我正在尝试检查用户是否具有特定角色 我做到了this https stackoverflow com questions 11998761 how can i access the user role in form builder
  • 为什么将 Ubuntu 升级到 22.04 后 phpMyAdmin 停止工作?

    刚刚升级到 Ubuntu 22 04 现在我的 phpmyadmin 无法加载 我收到以下错误 解析错误 语法错误 usr share php Symfony Component DependencyInjection ContainerB
  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • Symfony 4:添加 Twig_Extension_StringLoader

    在我的 Symfony 4 项目中 我有一个包含 HTML 的变量 我尝试使用 Twig 显示该变量 我想使用template from string 功能但我必须添加Twig Extension StringLoader到 Twig 环境

随机推荐