使用Symfony 2.6,我正在寻找在我的应用程序中在登录/注销时添加flash消息的最佳方法。我确切地说,在每种情况下我都不想修改响应(我不需要)。
以下是我的解决方案:
登录
1。第一个解决方案:
我可以使用 security.interactive_login 事件或 security.authentication.success 事件。在这两种情况下,我都可以实现一个侦听器,以便在事件发生时添加flash消息。
2。第二个解决方案:
我可以创建自己的LoginSuccessHandler来实现 AuthenticationSuccessHandlerInterface ,但在这种情况下我必须返回一个响应。此外,我不熟悉这种方法,我害怕覆盖默认的成功处理程序。那是对的吗 ?
注销:
我可以创建一个实现 LogoutHandlerInterface 的LogoutListener。在这种情况下,我也害怕覆盖defaut注销处理程序。
感谢您的提议。
答案 0 :(得分:0)
使用已经实施的FOSUserBundle登录/注销逻辑等...
因此,您将有可能在登录检查重定向上显示错误:
为此,您必须将错误返回到树枝
$session->getFlashBag()->add('error', 'Error message');
如果会话中有任何一个,你需要一个像这样的块来显示错误:
{% block flashes %}
{% if app.session.flashbag.peekAll|length > 0 %}
{{ session_flash() }}
{% endif %}
{% endblock flashes %}