@mexsmg

Как держать пользователя авторизованым?

Всем привет, начал изучать PHP и столкнулся с проблемой.
Я уже несколько раз переписывал систему авторизации пользователя, и каждый раз причиной была моя паранойя, я уже не могу спать, есть и радоваться жизни из за этого=)

Конкретнее о вопросе:
Мне нужно авторизовать пользователя на сайте и поддерживать его как авторизованного.
1) Я должен сам регулировать время сессии пользователя.
2) Пользователя не должно выкидывать с сайта при смене IP.
3) Пользователь должен иметь возможность поддерживать сессии с разных устройств (Войти на один и тот же аккаунт чтобы не выкинуло ни на одном из устройств)
4) Пользователя должно выкидывать с аккаунта на всех устройствах при смене пароля.

Я решил генерировать ключ(токкен) и хранить его в базе. Но столкнулся с проблемой уникальности ключа.

Я хочу записывать в базу информацию о авторизованном пользователе:
id - уникальный идентефикатор сессии;
user - уникальный логин юзера;
time - время жизни сессии;
key - уникальный ключ;

И вот тут я стал, как сделать ключ уникальным, но не использовать в его генерации логин, пароль и ip алресс?
1) Если я использую логин и пароль, как я смогу проверить пользователя, если в обычной сессии PHP мы не храним никакую информацию, так как она временная и ее можно легко угнать.
2) Если при генерации ключа я буду использовать ip, после его смены ключи станут разными.

Я знаю про существование UserAgent, но он не уникальный вообще, большая вероятность того, что данные совпадут.

Подобрался к такому вопросу:
Как получить уникальный идентификатор пользователя пришедшего на сайт, без использования ip адреса?
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ar2rsoft
PHP-developer
Пхп же сам генерит айди сессии возьмите его.
session_id()
Ответ написан
Ваш ответ на вопрос

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

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