@Zenko

Как реализовать механизм бана и удалить сессию пользователя?

Возникла необходимость реализовать для админов возможность бана пользователя на сайте.
Сам бан реализовал, но необходимо чтоб, если существует сессия (юзер онлайн) - она была очищена или удалена сразу после нажатия кнопки "в бан", высветилось соответствующее сообщение.
Первое что приходит в голову, используя таблицу sessions от codeigniter - добавить в нее поле user_id и допустим Ajax-ом проверять статус поля, если user_id существует, значит сессия жива, если нет session->destroy().
Прикинул, если так вот будут проверять 10к пользователей, например, выйдет достаточно накладно.
Есть ли какие-то другие способы реализовать обрыв чужой сессии без постоянного обращения в БД?
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ответы на вопрос 2
twobomb
@twobomb
Ну я так понимаю бан, это в какой нибудь таблице users поле isBan = true?
Ну так сделайте чтобы у пользователя при загрузке любой страницы проверялось это поле, и если оно true, то чистим сессию, редиректим куда нужно....
P.S. Если невтерпеж, то яксом пуляем каждые 10 секунд и если забанен, то чистим сессию и выдаем красивое всплывающее окно
Ответ написан
Комментировать
Serhioromano
@Serhioromano
Web Developer
Не совсем понятна архитектура приложения. Вроде РНР а предполагается Аякс.

Если в вас РНР, то нужно просто при перезагрузке страницу каждый раз проверять пользователя. Или вы хотите что бы уже открытая страница закрылась? На сколько это важно в РНР. Пусть смотрит, следующая перезагрузка и все, больше доступа нет. При перезагрузке сообщение и показать что доступа нет.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы