Symfony 2:登录/注销时的Flash消息

时间:2015-02-09 17:15:46

标签: php symfony

使用Symfony 2.6,我正在寻找在我的应用程序中在登录/注销时添加flash消息的最佳方法。我确切地说,在每种情况下我都不想修改响应(我不需要)。

以下是我的解决方案:

登录

1。第一个解决方案:

我可以使用 security.interactive_login 事件或 security.authentication.success 事件。在这两种情况下,我都可以实现一个侦听器,以便在事件发生时添加flash消息。

2。第二个解决方案:

我可以创建自己的LoginSuccessHandler来实现 AuthenticationSuccessHandlerInterface ,但在这种情况下我必须返回一个响应。此外,我不熟悉这种方法,我害怕覆盖默认的成功处理程序。那是对的吗 ?

注销:

我可以创建一个实现 LogoutHandlerInterface 的LogoutListener。在这种情况下,我也害怕覆盖defaut注销处理程序。

感谢您的提议。

1 个答案:

答案 0 :(得分:0)

使用已经实施的FOSUserBundle登录/注销逻辑等...
因此,您将有可能在登录检查重定向上显示错误:

为此,您必须将错误返回到树枝

$session->getFlashBag()->add('error', 'Error message');

如果会话中有任何一个,你需要一个像这样的块来显示错误:

 {% block flashes %}
    {% if app.session.flashbag.peekAll|length > 0 %}
        {{ session_flash() }}
    {% endif %}
 {% endblock flashes %}