FOS用户捆绑表单(登录、注册等)工作正常,但不是我自己的表格,给我:
CSRF令牌无效。请尝试重新提交表格
当我试图在以下位置创建资源时:
http://www.project.local/app_dev.php/developer/new
甚至:
http://www.project.local/developer/new
/库/WebServer/Documents/project/web
7.1.2
$symfony新项目
app/config/config。yml
framework:
secret: "%secret%"
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: ~
form: ~
csrf_protection: ~
validation: { enable_annotations: true }
#serializer: { enable_annotations: true }
templating:
engines: ['twig']
trusted_hosts: ~
trusted_proxies: ~
session:
handler_id: session.handler.native_file
save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
fragments: ~
http_method_override: true
# Twig Configuration
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
form_themes:
- 'form/form_div_layout.html.twig'
app/config/security。yml
security:
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
显影控制器
public function newAction(Request $request)
{
$developer = new Developer();
$form = $this->createForm(DeveloperType::class, $developer);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($developer);
$em->flush($developer);
return $this->redirectToRoute('developer_show', array('id' => $developer->getId()));
}
return $this->render('BackendBundle:Developer:new.html.twig', array(
'developer' => $developer,
'form' => $form->createView(),
));
}
开发者类型
class DeveloperType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('user');
}
public function configureOptions(OptionsResolver $resolver) {
$resolver->setDefaults(array(
'data_class' => Developer::class
));
}
public function getBlockPrefix() {
return 'backendbundle_developer';
}
}
表单模板
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" name="{{ form.vars.name }}">Create</button>
{{ form_end(form) }}
表格-生成
表单始终存在隐藏的\u标记
输入字段。
<form name="form_name" method="post" class="ui form">
<input type="hidden" name="form_name[_token]" value="YefVvhSvvNTItjw7ayDFwFi4sdf_6oOvsQjnUu9X7cw">
<button type="submit" name="form_name">Create</button>
</form>
(form\u name
等于backendbundle\u developer
)
>
谷歌了几个小时,阅读了堆栈溢出上所有类似的问题,包括上面的问题
重新检查了文件系统权限
http
进程在_www
用户下运行,因此:
sudo chown -R _www var/
sudo chmod -R 775 var/
会话文件在var/sessions/
下成功创建和更新
更改了app/config/config。yml条目
session:
handler_id: session.handler.native_file
save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
到
session:
handler_id: session.handler.native_file
save_path: ~
一事无成。
这不是这些类似问题的重复:
>
symfony2 CSRF无效
Symfony 3.0.1 CSRF令牌存在但无效
CSRF令牌无效。请尝试重新提交表格
Symfony2:CSRF令牌无效。请尝试重新提交表单
Symfony2 CSRF令牌无效。请尝试重新提交表格
即使使用form_rest(form)函数,Symfony 2中的“CSRF令牌无效”错误
Symfony isValid False CSRF令牌无效
交响曲2。CSRF令牌无效
你应该改变这一点
<button type="submit" name="form_name">Create</button>
用这个
<button type="submit" name="form_name[submit]">Create</button>
问题内容: 每次尝试提交表单时,我都会收到此错误消息: CSRF令牌无效。请尝试重新提交表格 我的表单代码是这样的: 有任何想法吗? 问题答案: 您需要在表单中添加,即 截至目前,您的表单缺少CSRF令牌字段。如果您使用树枝形状表单函数来呈现表单,则将自动为您呈现CSRF令牌字段,但是您的代码显示您正在使用原始HTML来呈现表单,例如,因此您必须手动呈现该字段。 或者,只需在表单的结束标记之前添加
我对Symfony2中的令牌形式有问题。(2.7.0) 行动: 我的表格: 当我测试表单时,总是显示相同的错误:“CSRF令牌无效。请尝试重新提交表单”。我确信输入隐藏在表单中。这是一种观点: 谁能帮帮我? 我测试禁用csrf保护,像这样: 行动: 形式: 但是出现了一个不同的错误:此表单不应包含额外的字段。因为令牌的隐藏输入,它还在表单中,我不知道要删除它。 谢谢你!
概述 我将使用API网关作为基于Spring Security性的身份验证。我刚刚按照https://spring.io/guides/tutorials/spring-security-and-angular-js/链接中的步骤创建了一个基于其对应的github项目的“对双”模块的项目https://github.com/spring-guides/tut-spring-security-and
我正在尝试使用Spring MVC 4上载带有web应用程序的文件,但出现错误: 在请求参数“\u CSRF”或标头“X-CSRF-Token”上发现无效的CSRF令牌“null”。 Spring版本: Spring版本4.1.7。发布 Spring安全4.0.1。发布 代码: web.xml spring web servlet。xml Settings.jsp 提交名为test的文件后,发布请
此文件包含上载文件的表单 上传orm.jsp 我的控制器方法是 我上传时出现以下错误: HTTP状态403-在请求参数“\u CSRF”或标头“X-CSRF-Token”上发现无效的CSRF令牌“null” 我也用过Spring安全。但是我总是给出同样的错误。我尝试了很多,但无法解决它。你能帮忙解决这个问题吗?
我有一个新的Symfony 3.0的奇怪问题。1安装。我用一个包含url和标题的表单PostType生成了一个新的CRUD控制器。没什么特别的。 表单按预期呈现。它包含我的url字段和标题字段。表单内部还呈现隐藏的输入字段_标记。 提交此表单时,我始终收到以下错误: 所以令牌被添加到表单中,它包含一个值,我有一个常量PHP会话cookie值,它只是使这个令牌无效。 我已经搜索了其他答案,但类似的问