在這種情況下,成功登錄後,我需要將用戶的登錄時間更新到基礎表中。登錄後的Symfony 2做了一些額外的工作
用戶實體當前實施UserInterface
,並且表現良好。只是想添加一些額外的代碼來記錄用戶的登錄日期時間。
搜索該網站,似乎我使用EventListener等是有點沉重。其他更輕的選擇?
在這種情況下,成功登錄後,我需要將用戶的登錄時間更新到基礎表中。登錄後的Symfony 2做了一些額外的工作
用戶實體當前實施UserInterface
,並且表現良好。只是想添加一些額外的代碼來記錄用戶的登錄日期時間。
搜索該網站,似乎我使用EventListener等是有點沉重。其他更輕的選擇?
您可以實施成功手杖。
AuthenticationSuccessHandlerInterface
:添加例如:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_area:
pattern: ^/
anonymous: ~
form_login:
login_path: login
check_path: login_check
success_handler: some.service.id
logout:
path: logout
target:/
檢查this作爲一個完整的例子和reference doc爲所有symfony2安全配置選項(您也可以配置failure_handler)。
在我的工作我的解決方案的實現方法onSecurityInteractiveLogin在我的聽衆爲:
public function onSecurityInteractiveLogin(InteractiveLoginEvent $event)
{
$user = $event->getAuthenticationToken()->getUser();
$user->setLastLogin(new \Datetime());
// Entity manager injected by container in the service definition
$this->em->persist($user);
$this->em->flush();
}
希望這有助於
這應該是處理登錄成功/失敗的方式。 – 2015-02-09 07:13:39
Hi @TaylorR如果這個或任何答案已經解決了您的問題,請點擊複選標記考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – Matteo 2015-03-17 09:12:47
沒有用事件偵聽器。這是最好的方法。 – Aitch 2015-02-08 23:38:04
重複http://stackoverflow.com/questions/11180351/symfony2-after-successful-login-event-perform-set-of-actions – Aitch 2015-02-08 23:39:00