Php Symfony 5登录表单操作返回无效的CSRF令牌
我正在使用symfony 5的安全组件创建身份验证系统,我使用了symfony cli的make:auth,并在注册表单后启用了登录,当注销并尝试使用登录表单登录时,返回无效的CSRF令牌错误 这是我的登录表单twig:Php Symfony 5登录表单操作返回无效的CSRF令牌,php,symfony,security,authentication,Php,Symfony,Security,Authentication,我正在使用symfony 5的安全组件创建身份验证系统,我使用了symfony cli的make:auth,并在注册表单后启用了登录,当注销并尝试使用登录表单登录时,返回无效的CSRF令牌错误 这是我的登录表单twig: {% extends 'base.html.twig' %} {% block title %}Log in!{% endblock %} {% block body %} <div class="container"> <
{% extends 'base.html.twig' %}
{% block title %}Log in!{% endblock %}
{% block body %}
<div class="container">
<br>
<div class="row justify-content-center" >
<form method="post">
{% if error %}
<div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
{% if app.user %}
<div class="mb-3">
You are logged in as {{ app.user.username }}, <a href="{{ path('app_logout') }}">Logout</a>
</div>
{% endif %}
<div class="card">
<article class="card-body">
<a href="{{ path('app_register') }}" class="float-right btn btn-outline-primary">S'inscrire</a>
<h4 class="card-title mb-4 mt-1">Connection</h4>
<p>
<a href="" class="btn btn-block btn-outline-info"> <i class="fab fa-twitter"></i> Login via Twitter</a>
<a href="" class="btn btn-block btn-outline-primary"> <i class="fab fa-facebook-f"></i> Login via facebook</a>
</p>
<hr>
<form>
<div class="form-group">
<input type="email" value="{{ last_username }}" name="email" id="inputEmail" class="form-control" required autofocus>
</div> <!-- form-group// -->
<div class="form-group">
<input type="password" name="password" id="inputPassword" class="form-control" required>
</div> <!-- form-group// -->
<div class="row">
<div class="col-md-12">
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block"> Login </button>
</div> <!-- form-group// -->
</div>
</div> <!-- .row// -->
<div class="row">
<div class="col-md-12 mt-5">
<a href="{{ path('app_forgot_password_request') }}" class="small">Mot de passe oubliée</a>
</div>
</div>
<div class="checkbox mb-3">
<label>
<input type="checkbox" name="_remember_me"> Remember me
</label>
</div>
</form>
</article>
</div>
</form>
</div>
</div>
{% endblock %}
我不明白登录系统是如何在注册表单之后直接工作的,但它在security.yml:
config/packages/security.yaml
安全:
#
并尝试在表单的末尾添加
<input type="hidden" name="_csrf_token" value="{{
csrf_token('authenticate') }}">
登录模板中没有csrf令牌输入
,但生成的验证器需要一个。检查authenticator类和查找名称。这是否回答了您的问题?
firewalls:
secured_area:
# ...
form_login:
# ...
csrf_token_generator: security.csrf.token_manager
<input type="hidden" name="_csrf_token" value="{{
csrf_token('authenticate') }}">