За последние 24 часа нас посетили 22864 программиста и 1227 роботов. Сейчас ищут 743 программиста ...

"Запомни меня"

Тема в разделе "PHP для новичков", создана пользователем Geebrox, 13 июл 2018.

  1. Geebrox

    Geebrox Активный пользователь

    С нами с:
    30 июл 2016
    Сообщения:
    24
    Симпатии:
    1
    Всем привет, с вами снова "чайник". У меня возник вопрос, как лучше всего реализовать запоминание пользователя на сайте? У меня были идеи сделать такое: Сохраняем куки с именем "key" который будет зашифрован методом SHA256 + соль. Как это всё будет происходить:
    После авторизации, берём ID (ну пусть будет 15) пользователя из БД - это будет служить как соль. Далее берём сессию, точнее ID сессии (если я не ошибаюсь) далее творим такое: к ID сессии добавляем ID пользователя. Получится: 'awd23913po15' - 15 это ID пользователя. Шифруем это всё методом SHA256 и сохраняем в куки key. Далее при повторном подключение к сайту: Берём значение key и переделываем всё заново, сверяем значении, если они совпадают, то даём доступ пользователю. Конечно сохраняем id сессии в бд перед всем этим. Но я только начал изучать про сессии и не до конца понял принцып их работы. Прощу вас исправить меня, если я где-то допускаю ошибку или предложить метод по лучше. Спасибо за уделённое время.

    P.S. Надеюсь строго не будете судить, всё таки я новичок ещё. Спасибо за понимание.
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    sid сам по себе криптостойкий. Зачем его еще шифровать? Чтобы скрыть id пользователя что ли? Так это допускающая публичность инфа. Ну можете записывать id пользователя алфавитом ключа, чтобы они визуально слились (мы часто так делаем). Также можете хранить id пользователя в сессионных данных, т.е. на стороне сервера. Поиск конечно будет происходить по самому ключу, что теоретически медленнее, но зато id пользователя не засвечен.

    Вы бы сначала с сессиями разобрались. Это во много схожий с куками механизм, точнее он тоже использует куки. Мы к примеру штатный механизм сессий практически не используем, а используем классическую связку куки+БД.
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    "Запомнить меня" не так делается. Генерится случайная строка, пишется в базу и в куку. Если пришла кука со строкой - ОК.
    --- Добавлено ---
    Сессия не должна быть настолько долгоживучей