繁体   English   中英

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

[英]Symfony 2 : Flash message on login / logout

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

这是我的解决方案:

登录:

1.第一个解决方案:

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

2.第二种解决方案:

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

登出:

我可以创建一个实现LogoutHandlerInterface的LogoutListener 在这种情况下,我也担心会覆盖默认的注销处理程序。

感谢您的建议。

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

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

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

在会话中,如果会话中存在任何错误,您将需要一个类似这样的块来显示错误:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM