aaadddminnn
@aaadddminnn
php it ubuntu debian

Как сделать вечную авторизацию на сайте?

Привет. По колдовал я немного с php.ini. Теперь автоматом создаётся кука phpsessid. Как можно сделать что бы она сохранилась после закрытия браузера? (я хочу сделать вечную авторизацию как на всех популярных сайтах) Или как по другому сделать вечную авторизацию ? Разумеется что в куки я не буду писать ид пользователя :)
  • Вопрос задан
  • 2678 просмотров
Решения вопроса 2
aaadddminnn
@aaadddminnn Автор вопроса
php it ubuntu debian
я нагуглил только
// На всякий случай сменим папку для файлов сессии
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'] .'/sessions/');
 
/**
*
*  Установка времении жизни сессии на 1 месяц.
*  Каждый раз при запуске файла эти значения будут переустанавливаться
*  так что сессия будет вечной ))
*
*/
ini_set('session.gc_maxlifetime', 3600*24*30);
ini_set('session.cookie_lifetime', 3600*24*30);
Ответ написан
trevoga_su
@trevoga_su
Вечная авторизация - в куки кладем ID пользователя + md5(user_password . 'salt') на 10 лет.
в php проверяем (псевдокод):

$data = select * from user where id=$_COOKIE['id']

if ($data) {
   if (md5($data['user_password'] . 'salt') == $_COOKIE['hash']) {
       // авторизация
   }
}

если за вами не следят и не перехватывают ваш трафик - очень надежное и красивое решение.

Сессии - как видно из названия - нужны не для этого. На phpfaq.ru об этом хорошо написано. Устанавливать длительное время жизни сессионной кукуи - не правильно совершенно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@MKMatriX
Вообще "вечную" авторизацию можно сделать храня ее в localStorage) Т.е. если куки истекли, а в локал сторадже есть данные для авторизации, то отправляем запрос, и получаем куки с нужной фигней. Из дополнительных плюшек - можно ставить короткое время жизни кук, ддосить свой серв, зато быть защищенным от действий мамкиных хацкеров ворующих куки. В теории можно сделать что в куки идет вообще какая-то дополнительная соль, работающая короткое время)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы