FOSUserBundle - переменная набора событий в сеансе при успешной аутентификации? - PullRequest
1 голос
/ 17 апреля 2019

Я хотел бы знать, возможно ли вставить переменную в сеанс, если аутентификация прошла успешно (используется с FOSUserBundle).

Больше или меньше двух строк для вставки.

$session = $request->getSession();
$this->$session->set('type','OneType');

Есть ли очень простой способ сделать это?Я действительно хочу сделать это при успешной аутентификации, нигде.

1 Ответ

1 голос
/ 17 апреля 2019

Вам необходимо прослушать событие security.interactive_login. ( Docs )

Простой пример использования подписчика на событие :

<?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.

...