注册页面上的FOSUser Bundle登录部分

时间:2013-02-07 09:45:27

标签: symfony fosuserbundle

在注册页面(以及所有其他页面)上,我想在页面上有登录部分..

我这样做的方式是;

{% 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.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 %}

1 个答案:

答案 0 :(得分:1)

这是正常行为。当您提交登录表单时,将调用登录操作。处理完您的请求后,它会将您重定向到与您的路线不同的登录路线。

这是一个知道问题https://github.com/FriendsOfSymfony/FOSUserBundle/issues/399,此处已经问过FOSUserBundle: embedding the login form and choosing its template

但实际上创建自己的登录检查并不困难。