2016-11-04 3 views
3

У меня есть два приложения Laravel, которые используют одну и ту же базу данных и, следовательно, имеют одинаковые пользователи и пароли.Автоматический вход/аутентификация Laravel from Other Laravel

Скажем, приложения называются А и В.

Если пользователь входит в систему А, что я могу сделать так, чтобы они автоматически вошли в B? Поэтому, если они войдут в A, тогда, когда они перейдут на B, им не придется снова вводить свою регистрационную информацию.

Оба приложения находятся на одном домене, но B является поддомен и не является частью одного и того же проекта, как А.

Спасибо заранее!

+0

Не могли бы вы установить токен в бэкэнд, и просто попросите включить этот токен и зарегистрировать их через 'Auth :: login ($ user);' или что-то подобное? – dangel

+0

Я полагаю, что смогу это сделать. ld application B знать, чтобы проверить это, когда пользователь идет от A? – Aaron

+2

, возможно, изменить промежуточное ПО Auth, чтобы найти его? или, возможно, в конструкторе контроллера (контроллеров) вы просто включаете 'Request $ request' и видите, содержит ли он токен. – dangel

ответ

0

Когда вы говорите Both applications are on the same domain, but B is a subdomain and is not part of the same project as A., я могу с уверенностью предположить, что это две отдельные установки Laravel, но они имеют одну и ту же базу данных? Я это так, вы можете попробовать это:

  • переключатель драйвер сеанса в базу данных в вашем .env файл в «базу данных», для справки, вы должны смотреть на комментарии в config/session.php, рядом с опцией 'driver' => env('SESSION_DRIVER', 'file'),. Обязательно управляйте таблицами соответственно (см. https://laravel.com/docs/5.5/session#driver-prerequisites)
  • В вашем файле .env укажите эту строку: SESSION_DOMAIN=.domain.ext (обратите внимание на точку возле знака равенства).

В качестве альтернативы, если даже базы данных являются отдельными, вы можете попробовать тот же конфигуратор, что и выше, используя драйвер cookie вместо базы данных. дайте мне знать, если это поможет.

редактировать: больше предложение, чем ответ, Laravel способен обрабатывать несколько веб-сайтов/доменов изначально (например. Route::domain('sub.domain.ext') Pratically говоря, организовать маршруты, таким образом, в routes/web.php С мудрой управления базами данных (и запросы.), вы можете легко создать два отдельных веб-сайта в пределах 1 приложения Laravel. Это предполагает, что вы имеете контроль над своим веб-сервером, конечно. Если это так, я бы предложил рефрактерство. Это действительно стоит усилий.