daager
@daager

Правильно ли я отлавливаю начало сессии?

Есть сайт с большой историей, переписывается пораздельно на новом сервере. Понадобилось, чтобы авторизовавшись на старом сайте, происходила автоматом авторизация и на новом. Решили делать так: при заходе на новый сайт, отлавливается новая сессия и проверяется, есть ли есть кука, то достать инфу и авторизовать средствами Laravel.

Реализовываю так:

Создал Middleware "StartSession" с наследованием от родительского Illuminate\Session\Middleware\StartSession и переобозначил метод startSession в :
public function startSession(Request $request)
    {
        event(new SiteAuth($session=parent::startSession($request)));
        return $session;
    }

В Kernel заменил оригинальный на свой.

Создал:
- Provider (SiteAuthServiceProvider) в котором зарегистрировал свой StartSession
- Event (SiteAuth)
- Listener (SiteAuthListener),

Они конечно же зарегистрированы где нужно.

В метод handle слушателя, я прописал тестовый код и он отрабатывает.
Внимание вопрос, уважаемые знатоки: правильно ли я всё сделал? С точки зрения архитектуры Laravel, MVC и т.д., не говнокод ли или костыль это?
Спасибо.
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
event(new SiteAuth($session=parent::startSession($request)));

Какая-то каша малаша.

eventы обычно отрабатываются асинхронно, зачем всё это здесь?

Зачем вообще какие-то события и вся это цепочка непонятных действий, при том что в итоге вы просто делаете вот это
$session=parent::startSession($request))

Просто проверяйте стандартную сессию и делайте авторизацию в ларавеле если она есть. Как и написали в начале.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы