Есть сайт с большой историей, переписывается пораздельно на новом сервере. Понадобилось, чтобы авторизовавшись на старом сайте, происходила автоматом авторизация и на новом. Решили делать так: при заходе на новый сайт, отлавливается новая сессия и проверяется, есть ли есть кука, то достать инфу и авторизовать средствами 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 и т.д., не говнокод ли или костыль это?
Спасибо.