Ошибка установки плагина Symfony

Я устанавливаю FOSUserBundle, который скачал с Knpbundle.

Я настроил его правильно, как указано в инструкции.

Я создал маршрут, поэтому мой 'app/config/routing.yml' выглядит следующим образом.

fos_user_security:
   resource: "@FOSUserBundle/Resources/config/routing/security.xml"

fos_user_profile:
   resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
   prefix: /profile

fos_user_register:
  resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
  prefix: /register

fos_user_resetting:
  resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
  prefix: /resetting

fos_user_change_password:
  resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
  prefix: /profile
acme_user:
  resource: "@AcmeUserBundle/Resources/config/routing.yml"
  prefix: /

И мой файл routing.yml выглядит следующим образом.

AcmeUser_Bundle:
  pattern: /admin
  defaults: { _controller: AcmeUserBundle:User:index}

Как только я передам /admin в своем URL-адресе, он вызовет представление файла индекса, которое я создал. Файл index выглядит следующим образом.

 <body>

<section id="login_form">
  <div class="login_form_head">Administration</div>
<form  id="admin_login_form" class="formee" method="post" action="{{
 path('fos_user_security_check') }}" enctype="multipart/form-data">

    <div class="login_form_display">
    <div class="login_row"><input type="text" name="_username"
 class="validate[required,custom[username]]" id="username" 
 placeholder="Username" /></div>
           <div class="clear"></div>
<div class="login_row"><input type="password"  class="validate[required,custom[passwordLogin]]"
   name="_password" id="password" placeholder="Password" /></div>
        <div class="clear"></div>
    </div>

    <!--Form footer begin -->
    <section class="login_footer">
            <div class="textcenter"><input type="submit" value="Login" /></div>
        <div class="clear"></div>
    </section>
    <!--Form footer end -->

    </form>                 
</section><!-- End of #container -->
 <div>
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
 {{ 'layout.logged_in_as'|trans({'%username%': app.user.username}, 'FOSUserBundle') }} |
            <a href="{{ path('fos_user_security_logout') }}">
                {{ 'layout.logout'|trans({}, 'FOSUserBundle') }}
            </a>
        {% else %}

            <a href="{{ path('fos_user_security_login') }}">{{ 'login'|trans({}, 'FOSUserBundle') }}</a>
        {% endif %}
    </div>

    {% for type, messages in app.session.flashbag.all() %}
        {% for key, message in messages %}
            <div class="flash-{{ type }}">
                {{ message|trans({}, 'FOSUserBundle') }}
            </div>
        {% endfor %}
    {% endfor %}

    <div>
        {% block fos_user_content %}




        {% endblock fos_user_content %}
    </div>

</body>

Он показывает ошибку csrfToken. Так что, пожалуйста, помогите мне понять.


person Viraj.S    schedule 07.03.2013    source источник


Ответы (1)


Вы пропустили этот <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" /> в форме входа.
CSRF TOKEN генерируются при каждом запросе и должны быть уникальными. Таким образом, вы (или, в данном случае, FOSUserBundle для вас) можете предотвратить АТКИ CSRF.

FOSUserBundle сгенерирует его для вас, но, поскольку он ожидает, что он будет опубликован в форме, вы должны включить его

Небольшое примечание

Я также не уверен, что вы пытаетесь сделать здесь. Если вы хотите настроить внешний вид формы журнала FOSUserBundle, вы должны переопределить ее надлежащим образом
Если вы найдете более подходящий способ, взгляните на этот ответ

person DonCallisto    schedule 07.03.2013
comment
да, я хочу переопределить его в форме входа в систему и хочу знать, как это работает с моей пользовательской формой входа. и хотите установить сеанс для него тоже. - person Viraj.S; 07.03.2013