Если вы выполняете свою систему аутентификации полностью самостоятельно (спасибо за это, кстати), вам просто нужно сбросить значение сеанса, которое содержит их статус аутентификации. Итак, если вы использовали:
<?php
session_start();
if(isset($_SESSION['isloggedin']) && isBannedUser())
{
session_unset();
session_destroy();
}
?>
Приведенный выше псевдокод вызывает фиктивную функцию, называемую isBannedUser()
, чтобы определить, запрещены они или нет. Если это так, в моем примере выше я вызываю session_unset()
, чтобы сбросить все значения, хранящиеся в $_SESSION
, а затем session_destroy()
, чтобы полностью закрыть сеанс. Некоторые, вероятно, будут утверждать, что вам может не потребоваться сброс, если вы уничтожаете, но я только что привык к очистке всех переменных и значений, которые я делаю в коде.
Это должно быть на каждой странице, чтобы вы проверяли, насколько часто они забанены. После уничтожения $_SESSION
пользователь фактически выгоняется из любой части вашего сайта, требующей аутентификации. Вам нужно будет внедрить поддерживающий код в ваш рабочий процесс входа, который запрещает повторному входу заблокированного пользователя.
Надеюсь, это полезно.