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


Symfony 2 : Flash message on login / logout

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

以下是我的解决方案:

登录:

1.第一个解决方案:

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

2.第二种解决方案:

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

注销:

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

谢谢你的提议。

使用已经实现的FOSUserBundle登录/注销逻辑等
因此,您可以在登录检查重定向中显示错误:

要做到这一点,你必须将错误返回到树枝

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

在分支中,如果会话包含任何错误,您将需要这样的块来显示错误:

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