Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 5登录表单操作返回无效的CSRF令牌_Php_Symfony_Security_Authentication - Fatal编程技术网

Php Symfony 5登录表单操作返回无效的CSRF令牌

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"> <

我正在使用symfony 5的安全组件创建身份验证系统,我使用了symfony cli的make:auth,并在注册表单后启用了登录,当注销并尝试使用登录表单登录时,返回无效的CSRF令牌错误

这是我的登录表单twig:

{% 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') }}">