Как правильно аутентифицировать пользователя после регистрации?
Читал официальную документацию, но так и не понял как сделать аутентификацию пользователя сразу после регистрации. У меня уже есть сохраненный объект $user, просто нужно его как-то аутентифицировать.
Есть идеи?
Отличная идея писать вопрос не приводя никакого кода.
Зависит от версии Симфони и твоего кода.
Ну то есть я не удивлюсь, что тут только снаружи симфони, а внутри типичный гуанокод, и подойдет на самом деле совет из комментов. На тостере и не такое мжно увидеть.
Symfony 4, те варианты я видел. security.context deprecated. С кодом все в порядке, не переживайте. Я поэтому и пишу, чтобы подсказали знающие люди как это сделать без костылей.
Второй случай вообще какой-то костыль, это точно не вариант использовать. Должен быть более правильный путь. Но если нет, то мне как-то страшно за Symfony. Потому что как-по мне дергать вручную событие аутентификации точно не Symfony-way, а какой-то говнокод.
FanatPHP, сервис аутентификации сам должен дергать событие, когда ты аутентифицируешь пользователя. Мы не должны никак дополнительно оповещать Symfony о том, что мы аутентифицировались. Когда мы указываем пользователя, она сама должна об этом позаботиться. В случае ответа на stackoverflow мы вытаскиваем кишки в контроллер, у нас нарушается инкапсуляция, тем самым у нас появляется еще одна ненужная зависимость и тогда смысл всего security-bundle теряется.
Еще раз - тот ответ это обходной путь, костыль, говнокод, что угодно. Должен быть нормальный путь имя инстанс UserInterface как то его аутентифицировать, не вызывая никаких событий руками.
Laravel предоставляет \Illuminate\Contracts\Auth\Authenticatable loginUsingId для аутентификации пользователя по его идентификатору. При этом события он берет на себя, я не должен знать как он внутри работает. Что-то похожее мне надо для UserInterface в Symfony.
Денис, что вы привязались к этим событиям. Вопрос не в них. Ткните носом в доку, вместо непонятного ответа на stackoverflow как программно аутентифицировать пользователя.
Соответственно аутентификацию необходимо проводить программно.
Мой вопрос как раз в этом и заключается, как правильно без костылей это сделать.