FOSUserBundle - 成功验证时会话中的事件设置变量?
FOSUserBundle - Event set variable in session when success authentication?
我想知道如果身份验证成功(与 FOSUserBundle 一起使用)是否可以在会话中插入变量。
插入多于或少于两行
$session = $request->getSession();
$this->$session->set('type','OneType');
有什么简单的方法吗?真想在认证成功的时候做,不是在任何地方。
您需要收听事件 security.interactive_login
。 (Docs)
简单示例,使用 an event subscriber:
<?php
// src/EventSubscriber/SecuritySubscriber.php
namespace App\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\SecurityEvents;
class SecuritySubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
SecurityEvents::INTERACTIVE_LOGIN => 'successfulLogin',
];
}
public function successfulLogin( InteractiveLoginEvent $event )
{
$event->getRequest()->getSession()->set('foo', 'bar');
}
}
您没有指定版本,但这应该适用于 Symfony 4 的默认安装。
我想知道如果身份验证成功(与 FOSUserBundle 一起使用)是否可以在会话中插入变量。
插入多于或少于两行
$session = $request->getSession();
$this->$session->set('type','OneType');
有什么简单的方法吗?真想在认证成功的时候做,不是在任何地方。
您需要收听事件 security.interactive_login
。 (Docs)
简单示例,使用 an event subscriber:
<?php
// src/EventSubscriber/SecuritySubscriber.php
namespace App\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\SecurityEvents;
class SecuritySubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
SecurityEvents::INTERACTIVE_LOGIN => 'successfulLogin',
];
}
public function successfulLogin( InteractiveLoginEvent $event )
{
$event->getRequest()->getSession()->set('foo', 'bar');
}
}
您没有指定版本,但这应该适用于 Symfony 4 的默认安装。