0

登録ページ(および他のすべてのページ)で、ページにログインセクションを表示したいと思います。

私のやり方はそうです。

{% extends "FOSUserBundle::layout.html.twig" %}

{% block login %}
{% render "FOSUserBundle:Security:login" %}
{%  endblock %}

{% block fos_user_content %}
{% include "FOSUserBundle:Registration:register_content.html.twig" %}
{% endblock fos_user_content %}

これにより、すべてが正しく表示されます。正常にログインすると、ログインして正しいページに移動します。ただし、パスワードを間違って入力すると、同じページにエラーメッセージが表示される代わりに、/loginページに転送されます。これを防ぎ、現在のページにエラーメッセージを表示するにはどうすればよいですか。

-login.html.twig;

{% block fos_user_content %}
{% if error %}
<div>{{ error|trans({}, 'FOSUserBundle') }}</div>
{% endif %}

<div id="HeaderLogin">
    <form action="{{ path("fos_user_security_check") }}" method="post">
        <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />

        <div id="HeaderLoginEmail">
            <input type="text" id="username" class="txtHeaderLogin" placeholder="Email" name="_username" required="required" /><br />
            <a class="Blue" href="/profile/change-password">Forgot Email?</a>
        </div>

        <div id="HeaderLoginPassword">
            <input class="txtHeaderLogin" placeholder="Password" type="password" id="password" name="_password" required="required" /><br />
            <a class="Blue" href="/profile/change-password"> Forgot Password?</a>
        </div>

        <div id="HeaderLoginButton">
            <input type="submit" class="btnHeaderLogin" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
        </div>
    </form>
</div>
{% endblock fos_user_content %}
4

1 に答える 1

1

これは通常の動作です。ログインフォームを送信すると、ログインアクションが呼び出されます。リクエストを処理した後、ルートとは異なるログインルートにリダイレクトされます。

これは既知の問題ですhttps://github.com/FriendsOfSymfony/FOSUserBundle/issues/399ここ​​ですでに質問されていますFOSUserBundle:ログインフォームの埋め込みとそのテンプレートの選択

しかし実際には、独自のログインチェックを作成することは難しくありません。

于 2013-02-07T12:22:20.733 に答える