使用Symfony 2.6時,我正在尋找在我的應用程序中登錄/註銷時添加Flash消息的最佳方式。我確切地說,在每種情況下,我都不想修改響應(我不需要)。Symfony 2:登錄/註銷時的Flash消息
這裏是我的解決方案:
登錄:
1.首先解決辦法:
我可以使用security.interactive_login事件或security.authentication.success事件。在這兩種情況下,我都可以實現一個偵聽器來在事件發生時添加一條Flash消息。
2.解決方法二:
我可以創建自己的LoginSuccessHandler實現了AuthenticationSuccessHandlerInterface,但在這種情況下,我不得不返回響應。此外,我不熟悉這種方法,恐怕會覆蓋默認的成功處理程序。那是對的嗎 ?
註銷:
我可以創建一個實現LogoutHandlerInterface一個LogoutListener。在這種情況下,我也不敢重寫defaut註銷處理程序。
謝謝您的建議。
謝謝你,但我不易懂找到你的建議。我有效地使用了FOSUserBundle。根據不同的事件[(FlashListener.php)](https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/EventListener/FlashListener.php),此捆綁包中實際上有7個預定義的Flash消息。你能解釋我在應用程序的哪個地方添加了一條Flash消息嗎?我的目的只是告訴用戶他現在已連接或斷開連接。所有的Flash消息都顯示在我的佈局中。 – Cruz 2015-02-09 18:43:15
你可以添加一個掛鉤到[FOSUser事件](https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/EventListener/LastLoginListener.php)的服務 - 添加一個在onImplicitLogin成功後添加一個flash的地方,用戶去,登錄後將出現閃光信息。必須有一個用於註銷,但我不確定它在文檔中的位置。您可以在控制器中鉤入[控制器](https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/controller_events.md),以便通過事件的控制器。 – George 2015-02-09 20:53:48
@George我已經創建了一個額外的偵聽器,它在成功登錄後添加一條flash消息(使用security.interactive_login事件,但它應該使用fos_user.security.implicit_login事件)。它工作正常。我不認爲註銷事件存在。即使在symfony 2。我按照文檔中的描述掛鉤到控制器,但重定向響應。 – Cruz 2015-02-09 21:05:26