Я работаю с этим приложением, созданным в codeigniter 3, и пытаюсь предотвратить одновременный вход в систему. Поскольку по умолчанию в CI нет чего-то подобного, я решил попробовать написать несколько функций для этого. Я не сделал слишком много, но это мой общий план, и мне хотелось бы узнать мнения и мысли о моем подходе. Я думаю, что мне нужно создать столбец user_id
в моей таблице ci_session
, а затем, когда пользователь входит в систему, используйте этот user_id
, чтобы проверить все user_id
в таблице сеансов, а затем удалить эти сеансы, а затем добавить это user_id
в новую сессию. Вот что я сделал до сих пор:
Шаг 1
Создайте столбец user_id
в ci_sessions
Я так не думаю Столбец должен быть ключом к таблице пользователей, поскольку мы просто сравниваем его с пользователем, который в данный момент входит в систему. Вот как таблица выглядит теперь после обновления.
id | ip_address | timestamp | data | user_id
Шаг 2
Итак, теперь, когда это сделано, следующим шагом будет добавление идентификатора пользователя к сеансу при входе в систему. Таким образом, в потоке входа в систему, если вход успешен, мы можем сравнить этот идентификатор пользователя со всеми текущие сеансы идентификатора пользователя, и если есть какие-либо с тем же идентификатором пользователя, мы удаляем сеанс.
Шаг 3
Сохранение текущего идентификатора пользователя в сеансе
Думаю, это лучшие шаги, если только кто-нибудь не знает лучшего способа обработки одновременных входов в систему с помощью codeigniter.