Laravel Laravel хранение сессий в файлах

membrilius

Новичок
Breeze, laravel ничего не знает, был ли пользователь "запомнен" или нет. При чистке сессий он просто берет конфиг с максимальным временем простоя сессии и проходит по всем файлам сессий. Конечно можно переписать сбор мусора и прикрутить туда костыль, но изначальная идея фреймворка дать мне то, о чем я не должен думать.
 

Breeze

goshogun
Команда форума
Партнер клуба
какой переписать, какой сбор мусора?
ставишь куку, читаешь куку
или теперь наличие фреймворка снимает обязанность что-то делать?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
вообще как бы да, сессии - и "запомнить меня" - это разные механизмы, как бы.
 

membrilius

Новичок
Breeze, я не понимаю по какому критерию сборщик мусора будет оценивать, что этот файл сессии должен хранится 15 минут, а это 3 дня...
Кнопка "запомнить меня" создает куку на длительный срок, но на файл сессии это никак не влияет.
 

Breeze

goshogun
Команда форума
Партнер клуба
разные, но достаточно связаны, чтобы не копить три дня ботов
 

Breeze

goshogun
Команда форума
Партнер клуба
@membrilius сессия всегда одной длины
после протухания кука всегда залогинит человека и восстановится состояние чего бы то ни было
 

membrilius

Новичок
Breeze, Кука хранит ID сессии ... если сессии с таким ID нет, то она будет создана. Она будет пустая. Laravel магическим образом удаленные данные в неё не вернет.
 

Breeze

goshogun
Команда форума
Партнер клуба
1. неактивная сессия хранится 24 минуты по дефолту
2. есть автологин на хренадцать суток
3. важные данные типа корзины товаров не хранишь в сессии
4. ушел кофе пить, сессия протухла, коллектор файл прибил
5. вернулся, автологин, новая сессия, корзина доступна

для робота

1. сессия создалась
2. через 24 минуты гк ее стер

не копятся файлы

так понятнее?
 

membrilius

Новичок
Breeze, Я не понял, откуда автологин возьмет потерянные данные если у меня есть только ID сессии которой больше нет.
Как имея просроченный ID я могу вернуть пользователя под котором я только что был?
 

Breeze

goshogun
Команда форума
Партнер клуба
догадайся, у тебя есть user id как минимум
 

membrilius

Новичок
Вы храните user_id в куке? И session_id там же? То есть я могу прописать Ваш user_id к себе в куку, любую 32 символьную строку в session_id, подождать 24 минуты и авторизироваться под Вами?
 

Breeze

goshogun
Команда форума
Партнер клуба
я понимаю, что при наличии фреймворков охота ничего не делать, чтобы он сам все сделал.
но голову иногда надо включать, да? ты вроде знаешь, что в куку писать можно, в базу/файл/астрал можно писать, но свести воедино не получается.

у тебя user_id появляется после автологина во вновь открывшейся сессии. дальше сможешь придумать?
 

MiksIr

miksir@home:~$
Breeze, Я не понял, откуда автологин возьмет потерянные данные если у меня есть только ID сессии которой больше нет.
Как имея просроченный ID я могу вернуть пользователя под котором я только что был?
В куке автологина не id сессии, а хеш, состоящий из однозначно идентифицирующих клиента данных, например, пароля, секретного ключа приложения и т.п.. Беря из куки ID пользователя, проверяется этот хеш.
 

membrilius

Новичок
Тогда лучше не хеш, а сериализированный набор данных точно идентифицирующий клиента, зашифрованный каким-нибудь алгоритмом blowfish. Так раньше например гугл делал.

Вообщем понятно, все сошлось к тому, что сессия должна хранится минимально мало. Ладно.
 

Breeze

goshogun
Команда форума
Партнер клуба
не минимально, а разумно по времени.
и если уж шифровать, то проще сделать свой хендлер для сессий со стораджем в куках :)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
я как-то не верю, что нельзя отключить в конфиге дефолтный старт сессий для всех запросов
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
в каком конфиге? В ларавеле свои поделки в плане сессий, для message bag и т.д.
 
Сверху