Pull to refresh

Comments 27

UFO just landed and posted this here
Если попробовать исходить из того, что никто никому ничего не должен, станет как-то легче жить.
Форум вовсе не обязан Вас мотивировать.
И Вы ничего ему не обязаны.
От этого трагического разрыва никто ничего не потерял.
> См. P. P. S.
Спасибо, что дописали.
Видите ли. Вас интересует технический аспект, меня — социальный.
Я использую менеджер паролей и вспоминаю о куках примерно пару раз в год.
Чего и Вам желаю.
Создаем куку на годы вперед. Сохраняем в ней время последнего захода пользователя. Если время больше N дней, «забываем» пользователя, иначе обновляем куку с временем последнего захода.
Не совсем понял ваш второй вариант, но помоему мы о разном.
Или создаем куку с сессией, к примеру, на год. При заходе, проверяем, когда она истекает. Если осталось меньше 11 месяцев, «забываем» пользователя, иначе, обновляем куку снова на год.
Реализация может быть разной. Мы делаем так: ставим куку со сроком жизни N дней (месяцев/лет) и аналогичную — хранящую окончание этого самого срока жизни, при входе проверяем сколько куке осталось, если получается значение меньше X — освежаем куки.
А зачем об этом писать топик? Это способ, который первым пришел мне в голову, и, мне кажется, ничего гениального/интересного/нового в нем нет.
Чтобы обратить внимание на проблему и подсказать (не всем, к сожалению, решения так очевидны) решение.
Еще можно сохранять куки, хранящие время установки и срок жизни, можно хранить в них время активности. Самое главное — вовремя освежать, чтобы пользователь не оказался перед «закрытой дверью».
А почему просто при каждом посещении пользователем сайта не обновлять его куку, устанавливая в ней время начала сессии равное текущему? Тогда никакой 2ой куки не надо.
У себя так и делаю. Самый простой способ :)
Так и не надо при каждом посещении. Дополнительная кука как раз и нужна для того чтобы знать, когда следует освежить куки — скажем куку ставим со временем жизни год с текущего момента, в дополнительную — срок окончания времени жизни. При посещении проверяем — если до этого срока остался месяц — освежаем все необходимые куки.

Можно, конечно, в начале каждой сессии освежать, можно освежать еще каким-то образом. Главное — освежать ;-)
Зачем плодить? По-моему тут принцип KISS самое оно.
Тогда зачем вообще хранить в куке время? Просто в начале каждой сессии освежать все куки разом.
Сами пишите в первом пункте «Решение почти универсальное, но для случаев, когда нужно искусственно «отсекать» пассивную аудиторию не очень подходит».
Вы тут про тёплое с мягким. В статье первый пункт — первое решение. Второй пункт — второе. Два разных решения. В первом ставится кука до 2037 года например и про вопрос ее срока жизни можно забыть, во втором — уже те самые манипуляции с освежением и сохранением времени (срока жизни, времени установки — кому что больше нравится).

Если требуется освежать и если не нужно читать время в дальнейшем, зачем его тогда вообще сохранять? Как раз KISS: «зашел посетитель > началась сессия > все установленные у него куки освежить».
Потому, что, если пользователь не заходил на сайт месяц, его сессию всё-таки надо бы убить. Вариант с одной кукой я описал тут.
По-моему, человек имел в виду другое: если человек ходит на сайт раз в неделю, каждую неделю срок действия куки сбрасывается на исходное значение (1 месяц, к примеру). Если человек не ходил месяц и более, кука удаляется, сессия убивается.
Ну это идеальный вариант
Почему все считают, что все кому-то обязаны? вы еще про капчу вспомните.
Зы
Я ушел с одного специлизированого форума с очень хорошей аудиторией из-за того что там ввели адскую капчу(хабр всасывает заглатывая, впрочем не только в плане капчи, но в плане контента и аудитории) и сроктгоности печенектпостааили сутки.
Ну собственно я о том, что чем проще работа с сервисом — тем лояльнее к нему аудитория, а это уже даёт разные «плюшки» самому сервису (кэп?).

И закрытая в один прекрасный момент дверь на входе — это «–100 к карме сервиса» одномоментно. Топик призывает избегать этой ситуации во избежание жертв и разрушений. =)
Больше раздражает, когда делают какие-то странные поля, которые браузер не считает логином и паролем, и не предлагает запомнить их.
UFO just landed and posted this here
А ещё многие сервисы не предоставляют возможность самоудаления-самовыпиливания аккаунта.
Ещё вариант с одной кукой без постоянного её обновления — время установки куки пишем в БД (вместе с самой кукой, мы же её сохраняем в базе?). При входе с истекшей сессией (или вообще без неё), но с кукой — ищем в базе куку (как обычно, чтоб в сессии установить user id и т. п.), но тем же запросом вытягиваем время установки — если слишком давно, но не настолько, чтобы заставить пользователя логиниться снова, то обновляем и куку, и запись в БД.

Оверхид по сравнению с кукой на 100500 лет — на одно поле больше выбирать при начале сессии+одно сравнение этого поля с текущей датой+одна запись в БД, если надо обновить куку. Если поле не индексировано — а индексировать его особого смысла нет, имхо, — то практически оверхид равен нулю, а гибкость повышается.
Sign up to leave a comment.

Articles