是很簡單:你可以創建一個服務,將作爲一個事件監聽器
# app/config/config.yml
services:
your_bundle_name.login_listener:
class: FQN\Of\Your\Bundle\Class\Listener
tags:
- { kernel.event_listener, security.interactive_login}
標籤部分是存在的,因爲您的應用程序的引導程序,內核將「附加」某種類型的事件到您的服務,並會在每次發生此事件時調用該服務的方法。 所以kernel.event_listener
是存在的,因爲每一個事件監聽器都被標記這樣(跟着它作爲一個「規則」),併爲用戶成功地登錄security.interactive_login
將被解僱。
你的類可以是這樣的
//omitting class declaration on purpose
public function onSecurityInteractiveLogin(InteractiveLoginEvent $event) {
$user = $event->getAuthenticationToken()->getUser();
if (!$user->isActive()) {
//do the proper action to display the error
}
}
您是否嘗試過使用FOSUserBundle https://github.com/FriendsOfSymfony/FOSUserBundle?它旨在處理註冊和確認電子郵件等常見任務。 –
不,我在獨立捆綁包中沒有興趣,我想知道如何在本地SF2中執行此操作。 – user1954544