Использование sessions - хороший способ сделать это и является очень распространенным методом контроля подлинности.
Поток обычно выглядит примерно так: посещение сайта
- пользователя и session_start() называется. Для этого посетителя установлен уникальный идентификатор сеанса (т. Е. Cookie).
- Пользователь отправляет свои учетные данные для входа в форма входа
- Вход учетных данные проверяются, и этот факт хранится в данном сеансе с
$_SESSION['logged_in'] = true
, или нечто подобным
- Для остального времени пользователя на сайте, вы может проверить
$_SESSION['logged_in']
, чтобы увидеть, если пользователь вошел в систему.
для того, чтобы управлять логины пользователя, вы могли бы просто иметь поля в базе данных (users
таблица отлично) указывает на то, что текущий идентификатор сессии (извлекаться с session_id()
) для пользователя, и если он не соответствует значению cookie, вы jus t, то вы сразу же вызываете session_destroy()
для этого идентификатора и считаете, что пользователь вышел из системы.
Использование $_SESSION
означает, что вам не нужно беспокоиться о создании собственных токенов и дает возможность встроенным суперглобалам облегчить хранение информации о состоянии аутентификации пользователя.
Лично я позволил бы нескольким сессиям быть активными для пользователя для большинства веб-сайтов, поскольку, как правило, нет веской причины не делать этого, но это, очевидно, зависит от характера сайта. Однако сохранение текущего активного идентификатора сеанса, упомянутого выше, является довольно простым способом для этого.
Хранение идентификатора сеанса в базе данных еще лучше. – TravisO
Это тоже сработает, TravisO :) – Sampson