Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.03.2019 12:04:18

Проблема с сессиями на одном сервере но для разных хостов

Парни, привет!

Обращаюсь со следующей проблемой, ума не приложу, в каком направлении копать.
Итак, имеем один сервер на убунте, на ней поднят апач и в нем два виртуальных хоста (one.host.com и two.host.com для примера).

На хосте one.host.com развернут пустой laravel 5.2.45 и выполнен make:auth также в route добавлен следующий код (дефолтовая авторизация)

Route::get('session', function() {
    return Session::all();
});

После запроса one.host.com/session получаем строку:

{"_token":"yfcfXAjx87gTca1kVGKDgn4L5CndcK6u94FK9fLp","_previous":{"url":"https:\/\/one.host.com\/session"},"flash":{"old":[],"new":[]}}


Тут все отлично, авторизация/регистрация работает на ура.

А вот теперь и начинается непонятка:

Для хоста two.host.com делаем точно такую же процедуру (один в один) и при вызове two.host.com/session получаем это:

{"_token":"mbm5Yel4wEPzasjsSk2nGs8h3XrVKxEm6NAcTnlO"}

При этом не работает регистрация и авторизация, при обновлении страницы _token постоянно обновляется, хотя в первом случае он сохраняет время жизни как положено. Тупое копирование кода с первого хоста во второй дают точно такой же эффект.

Парни, подскажите, в чем может быть причина такой кардинальной разницы и куда копать?

Не в сети

#2 24.03.2019 13:55:41

Re: Проблема с сессиями на одном сервере но для разных хостов

Если поверить, что код действительно один и тот же...
1. сессионный файл не может быть записан из-за проблем с доступом.
2. В конфигурации (.env) есть что-то, что мешает правильной работе
3. В ваших куках застряло значение laracel_session, которое не перезаписывается браузером.

Например, я встречал "необъяснимое" нежелание аутентификации когда на тестовом сервере сменил https на http. Оказывается браузер может хранить более одного экземпляра куки с одинаковым именем, но разными свойствами типа "path" , "secure". И соответственно отсылает не то, что вы ждёте.
Принудительная чистка куки мне помогла.

Изменено artoodetoo (24.03.2019 13:57:52)


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 24.03.2019 14:50:31

Re: Проблема с сессиями на одном сервере но для разных хостов

Коллега Artoodetoo оказался абсолютно прав!

3. В ваших куках застряло значение laracel_session, которое не перезаписывается браузером.

Итак, рассказываю решение проблемы (я потратил на это 7 часов! Карл, 7 часов!)
Закурив очередную сигарету решил открыть ресурс two.host.com в Firefox без всякой надежды на что-то приятное, но, загрузив сайт, я опешил - регистрации и авторизации прошли на ура. Тут же проверил в Опере, тоже красота, а вот IE не захотел работать.

Смекнув, что дело не в фреймворке, начал копать файл /config/session.php
Проверяя еще раз все настройки в голову пришла мысль о laravel_session. Изменив на другое значение (назвал "tvoumat_session") я узрел прекрасную работу во всех браузерах. Так что проблема решена!

Спасибо, коллега!

Топик можно закрывать...

Изменено ManSDC (24.03.2019 14:53:46)

Не в сети

Подвал раздела