@mexsmg

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

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

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

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

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

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

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

Подобрался к такому вопросу:
Как получить уникальный идентификатор пользователя пришедшего на сайт, без использования ip адреса?
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 2
DevMan
@DevMan Куратор тега PHP
чисто технически: логин на разных устройствах/браузерах - это отдельные сессии, и совершенно нормально, что они будут иметь различный набор данных.
если вы хотите их объединить, это тоже реализуемо, но уже совершенно другой вопрос.

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

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

Войти через центр авторизации
Похожие вопросы
Vigrom Москва
До 150 000 руб.
SaveTime Москва
от 100 000 руб.
Teamlead Ставрополь
от 25 000 до 50 000 руб.
15 нояб. 2019, в 15:24
3000 руб./за проект
15 нояб. 2019, в 15:12
2000 руб./за проект
15 нояб. 2019, в 15:11
15000 руб./за проект