【发布时间】:2014-08-17 22:46:49
【问题描述】:
我在登录 Symfony2 应用程序时收到以下错误:
[2014-06-27 00:36:22] security.INFO:身份验证请求失败:CSRF 令牌无效。 [] []
运行时间:
- Symfony2
- SonataUserBundle
- Vagrant(通过 Puphpet.com 使用 puppet)
- Safari/OSX
相同的设置在 Ubuntu 主机系统上工作。
感谢您的帮助。
security.yml:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_area:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: fos_user_security_login
check_path: fos_user_security_check
logout:
invalidate_session : false
path: fos_user_security_logout
anonymous: true
switch_user: true
Application/Sonata/UserBundle/Resources/views/Security/login.html.twig
{% extends "FOSUserBundle::layout.html.twig" %}
{% trans_default_domain 'FOSUserBundle' %}
{% block fos_user_content %}
{% if error %}
<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert">×</button>
{{ error|trans }}
</div>
{% endif %}
<form class="form-horizontal" action="{{ path("fos_user_security_check") }}" method="post">
<fieldset>
<legend>Login</legend>
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
<div class="form-group">
<label class="col-lg-2 control-label required" for="username">{{ 'security.login.username'|trans }}</label>
<div class="col-lg-5">
<input type="text" id="username" name="_username" placeholder="Username" value="{{ last_username }}" required="required" class="form-control" />
</div>
</div>
<div class="form-group">
<label class="col-lg-2 control-label required" for="password">{{ 'security.login.password'|trans }}</label>
<div class="col-lg-5">
<input type="password" id="password" name="_password" placeholder="Password" required="required" class="form-control" />
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-5">
<input type="checkbox" id="remember_me" name="_remember_me" value="on" />
<label for="remember_me">{{ 'security.login.remember_me'|trans }}</label>
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-5">
<a href="{{ path("fos_user_resetting_request") }}">{{ 'resetting.request.submit'|trans }}</a>
<input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}" class="btn btn-primary form-control" />
</div>
</div>
</fieldset>
</form>
{% endblock fos_user_content %}
使用 FOSUserBundle 和 SonataUserBundle 的任何其他内容
【问题讨论】:
-
你能贴一些代码(你的登录文件)
-
当然,见上文。
-
输入
_csrf_token是否有值当你得到登录页面? (您可以使用导航器中的开发人员工具对其进行检查) -
是的,输入字段填充了令牌:
标签: symfony fosuserbundle sonata-user-bundle