Делаю панель администратора. Где я даю возможность занести пользователя в черный список. Если пользователь вошел в систему во время внесения в черный список, как я могу уничтожить его сеанс. его сеанс имеет следующие ключи: user_id, username, is_login. Я хочу установить для is_login значение false. я работаю с пхп
если пользователь правильно вводит свой логин и пароль, переменные сеанса устанавливаются. на каждой странице, которую он посещает, переменные сеанса проверяются
я просто хочу изменить значение переменной сеанса. у меня есть идентификатор пользователя. и тот же идентификатор пользователя хранится в сеансе
как генерируются переменные сеанса и как долго они действительны? Я предполагаю, что ваш сервер проверяет правильность переменных сеанса, вы можете проверить, что пользователь, который пытается получить доступ к учетным данным сервера, не существует в вашем черном списке.
Если ваш сервер хранит копии всех действительных токенов сеанса, вы также можете просто удалить этот токен.
Отвечает ли это на ваш вопрос? Laravel 5 - выйти из системы пользователя со всех его устройств
Измените сеансы на базу данных, запросите и удалите сеансы. Затем обновите аутентификацию, чтобы убедиться, что пользователь находится в черном списке.
вы можете сделать это:
blocked
middleware
, который проверяет blocked
значение пользователяAuth::logout();
для получения дополнительной информации, пожалуйста, проверьте следующую статью 3 способа удалить пользователя в Laravel: заблокировать, скрыть или принудительно удалить?
мне нужно сделать запрос к базе данных в каждом запросе
Кстати, у меня есть решение, и спасибо всем за вашу поддержку
Шаг 1: Создать столбец Banned_at в таблице пользователей.
Шаг 2: Создать промежуточное ПО для этого Например: CheckBanned
В промежуточном программном обеспечении CheckBanned.php
public function handle ( $request, Closure $next )
{
if ( auth ()->check () && auth ()->user ()->banned_at )
{
auth ()->logout ();
$message = __ ( 'auth.banned_error' );
return redirect ()->route ( 'login' )->with ( 'error',$message );
}
return $next( $request );
}
Шаг 3: Добавить промежуточное ПО в app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
....
....
\App\Http\Middleware\CheckBanned::class,
....
],
....
....
],
какой у вас метод аутентификации?