Выйти везде, где еще я захожу

0

В настоящее время я использую PHP-сессии в качестве основы для моей системы входа в систему, с успешным параметром входа $_SESSION ['userid']. Это позволяет пользователю войти в ту же учетную запись с нескольких компьютеров.

Однако я хотел бы реализовать следующие функции:

  • Выход из системы везде, аналогичный тому, что имеет переполнение стека.
  • Смотрите, где еще один зарегистрирован.

Оба, скорее всего, потребуют больше, чем просто переменную сеанса, и я готов предоставить больше информации в базу данных для их выполнения. Что такое стандартный способ сделать это?

Теги:
authentication
session

2 ответа

2
Лучший ответ

Создайте новую таблицу базы данных для хранения сеансов, а затем вместо сохранения информации непосредственно в $_SESSION просто сохраните идентификатор, ссылающийся на строку в новой таблице сеансов. Эта таблица может содержать информацию, такую ​​как IP-адрес, имя пользователя и время последнего действия.

Ваше приложение должно проверить таблицу сеансов на то, что у него есть в $_SESSION, поэтому, когда вы удаляете все строки в таблице для определенного пользователя, каждый сеанс будет признан недействительным, где бы он ни находился. Вы также можете запросить все строки, принадлежащие определенному пользователю, чтобы вы могли показать, где они имеют активные сеансы.

Вам нужно будет начать думать о том, как пользователь покидает сессию без явного выхода из системы - возможно, запланированное задание, которое выполняется каждый час или день, очистка строк сеанса, которые не имели какой-либо активности за определенный период времени время.

  • 2
    Если вы хотите, вы можете использовать session_set_save_handler() и сделать все ваши данные сеанса в базе данных.
  • 0
    Хороший - не знал об этой функции.
0

Если вы хотите уничтожить сеанс и выйти из системы, вы можете использовать функцию session_destroy(). Чтобы удалить определенную переменную сеанса, вы можете сделать это следующим образом:

unset($_SESSION['userid']);
session_destroy();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню