2012-01-13 28 views
0

我們需要捕獲具有額外信息的登錄數據,作爲驗證碼輸入等。 當我們登錄時,我們在loginListener中丟失了這個$ _POST信息,所以我們無法處理一些數據到數據庫。在登錄之前獲取發佈數據

,我們發現執行一些代碼登錄,然後才能訪問數據庫,並在其中捕捉一些POST數據的唯一功能,就是在UsernamePasswordFormAuthenticationListener類的attemptAuthentication功能,在文件:

vendor/symfony/src/Symfony/Component/Security/Http/Firewall/UsernamePasswordFormAuthenticationListener.php 

但是核心代碼,如果我們需要修改它,我們認爲這是一個不好的做法。

我們需要在Symfony 2中找到BeforeLogin函數和文件來實現數據庫訪問代碼。

回答

1

您可以註冊一個偵聽器SecurityEvents::INTERACTIVE_LOGIN並從事件對象獲取請求。

+0

謝謝克里斯。是個不錯的選擇。 我們試圖在LoginListener中實現onSecurityInteractiveLogin函數,但它只在登錄後才起作用。 我們需要在登錄前執行此操作。 有什麼想法? – Santi 2012-01-23 13:06:49