Как правильно хранить данные о авторизации?

Всем привет! Пишу авторизацию, но не совсем понятно правильно ли я делаю, смысл такой:
Авторизация = проверяем логин и пароль в базе с введенными -> записываем случайный хеш в cookie и в базу -> записываю нужные данные юзера в сессию и дальше работаю с сессией.
Новый вход = проверяю хеш, записанный в cookie с хешем в базе, если совпал -> записываем в сессию нужные данные юзера и работаем дальше с сессиями

Поэтому два вопроса:
1. Правильный ли такой подход?
2. Как быть с если юзер хочет работать с одним аккаунтом на разных устройствах одновременно? Создавать таблицу с хешами и хранить в ней все хеши с разных устройств одного пользователя?
  • Вопрос задан
  • 1268 просмотров
Решения вопроса 1
Daemon23RUS
@Daemon23RUS
1) Имея/перехватив куку посетителя я автоматом авторизован ?
2) Я бы записал в куку данные о пользователе (IP, Браузер, OS , итп.) зашифрованные ключем (хешем_пароля) К этому блоку прибавил бы ИД хеша_пароля пользователя, дату посещения/создания куки (время жизни) и зашифровал эти данные вместе с предыдущим криптопакетом ключем/паролем сервера. В базе я бы эту куку не хранил. Но получив такой криптопакет, сервер бы его дешифровал ,и в случае успеха получил время создания, и ИД хеша пользователя. Если кука не просрочена (имеется ввиду не на стороне клиента, а проверка со стороны сервера скармливаемых ему данных) то дешифровал бы 2й пакет. и в случае успеха мог бы использовать сохраненную там ранее информацию. Успех в дешифровке означал бы признак успешной авторизации, На основании которой бы и принимал решение открывать/создавать для этого пользователя сессионную переменную или отправлять на авторизацию по логину и паролю. Ну а далее выбор за вами, разрешить/запретить вход с разных IP/устройств/браузеров
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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