@entermix

Где вы храните сессии пользователя, почему?

Где вы храните сессии пользователей, почему? Что делать если у пользователя отключены cookies и нельзя определить идентификатор сессии?
  • Вопрос задан
  • 791 просмотр
Решения вопроса 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Что делать если у пользователя отключены cookies и нельзя определить идентификатор сессии?


Сообщать ему что мол "чувак у тебя куки отключены!"

https://developer.mozilla.org/en-US/docs/Web/API/N...
Ответ написан
Комментировать
@Wol_fi
php, js, mysql, highload
Где вы храните сессии пользователей, почему?

На бэкенде - в redis. Потому что жёсткий диск загибается от такого кол-ва, а хранить в tmpfs - потеряются при форсмажоре, а redis дампит на диск, в случае чего.
На фронте - в куках, если куки у юзера отключены - к каждой ссылке добавляется ?PHP_SESSID, это у php "из коробки".

Что делать если у пользователя отключены cookies и нельзя определить идентификатор сессии?

Передавать айди сессии другими методами.
Ответ написан
65536
@65536
Внимание, с 20 декабря по 10 января в вашем доме будут отключены cookies.

В какой ситуации браузер может оказаться с неработающими кукис кроме той когда за рулем сидит параноидальный идиот. Или я что-то пропустил?

Я отказался от стандартных пхп-сессий. У них основная проблема - это то, что все это хранится в одном файле, который теоретически может или хотел бы разрастаться до бесконечности. Каждое открывание и считывание большого файла будет выжирать. Вторая проблема это то что если этот файл открыт один раз, то пока он не закроется, еще раз его не открыть. Если один запрос висит, следующий стоит в очереди. Это все можно обойти используя session_set_save_handler и т. д., но по-моему слишком сложно. Гораздо проще выдавать пользователям/гостям уникальный ключ (единственное что будет храниться в их кукисах) а уже по этому ключу хранить у себя в базе или где-то как хотеть данные сессии. Единственное что нужно сделать самому это прописать механизм смерти этих сессий и кукисов, и выдачу уникальных ключей, чтобы кому-то чужая не перепала. В базе по такому ключу можно хранить бесконечное кол-во записей, разделенных по какому-то признаку, принадлежности к такому-то модулю, например, и не беспокоиться о проблеме разрастания до бесконечности
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы