0

FOSUserBundleKnpbundle からダウンロードしたものをインストールしています。

指示どおりに適切に構成しました。

ルートを作成したので、'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}

URLを渡すとすぐに/admin、作成したインデックス ファイル ビューが呼び出されます。ファイルは次の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ます。だからplsは私が理解するのを助けることができます。

4

1 に答える 1

0

<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />ログインフォームでこれを見逃しました。
CSRF TOKENはリクエストごとに生成され、一意である必要があります。そのようにして、あなた (または、この場合は FOSUserBundle) がCSRF ATTACKSを防ぐことができます。

FOSUserBundle はそれを生成しますが、フォームに沿って投稿されることを期待しているため、含める必要があります。

ちょっとしたメモ

また、あなたがここで何をしようとしているのかもわかりません。FOSUserBundle ログイン フォームのルック アンド フィールをカスタマイズする場合は、適切な方法でオーバーライドする必要があります。より適切な方法が見つかった場合は、この回答
をご覧ください。

于 2013-03-07T07:50:00.933 に答える