Вы можете хранить сеансы в базе данных, предоставляя уникальный идентификатор сеанса каждый раз, когда пользователь входит в систему. Сохраняя идентификатор сеанса также в переменной сеанса, вы можете видеть, когда пользователь регистрируется в другом месте.
Например:
- Пользователь A входит в в Safari на своем ноутбуке
- идентификатор сеанса генерируется и хранится в переменной базы данных и сеанса
- пользователь A переходит на другую страницу
- Идентификатор сеанса в базе данных сравнивается с переменной сеанса
- Идентификаторы матча, пользователь все еще находится в
- бревен Пользователя А при помощи Chrome на своем телефоне
- идентификатор сеанса генерируется и сохраняется (перезапись предыдущего) в переменных базах данных и сеанса
- Пользователь A просматривает на его ноутбук на новую страницу
- Идентификаторы не совпадают, перенаправление на страницу входа
Вы также можете сделать это мо re general, сохраняя таблицу сеанса, чтобы разрешить максимальное количество сеансов для каждого пользователя. Ключ состоит в том, чтобы использовать глобальную память, такую как база данных, в сочетании с информацией о сеансе, чтобы проверить, где последний пользователь зарегистрировался.
Это немного расплывчато, как вы храните сеансы? Быстрый ответ здесь также, можно ли добавить в новый код сеанса запрос для удаления всех остальных сеансов из таблицы? – Arcath