Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Парни, привет!
Обращаюсь со следующей проблемой, ума не приложу, в каком направлении копать.
Итак, имеем один сервер на убунте, на ней поднят апач и в нем два виртуальных хоста (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 постоянно обновляется, хотя в первом случае он сохраняет время жизни как положено. Тупое копирование кода с первого хоста во второй дают точно такой же эффект.
Парни, подскажите, в чем может быть причина такой кардинальной разницы и куда копать?
Не в сети
Если поверить, что код действительно один и тот же...
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.
Не в сети
Коллега 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)
Не в сети