Удаленно удалить сессию пользователя из панели администратора

Делаю панель администратора. Где я даю возможность занести пользователя в черный список. Если пользователь вошел в систему во время внесения в черный список, как я могу уничтожить его сеанс. его сеанс имеет следующие ключи: user_id, username, is_login. Я хочу установить для is_login значение false. я работаю с пхп

какой у вас метод аутентификации?

DucksEatTurtles 09.04.2022 07:49

если пользователь правильно вводит свой логин и пароль, переменные сеанса устанавливаются. на каждой странице, которую он посещает, переменные сеанса проверяются

Chandan Kalita 09.04.2022 07:50

я просто хочу изменить значение переменной сеанса. у меня есть идентификатор пользователя. и тот же идентификатор пользователя хранится в сеансе

Chandan Kalita 09.04.2022 07:52

как генерируются переменные сеанса и как долго они действительны? Я предполагаю, что ваш сервер проверяет правильность переменных сеанса, вы можете проверить, что пользователь, который пытается получить доступ к учетным данным сервера, не существует в вашем черном списке.

DucksEatTurtles 09.04.2022 08:00

Если ваш сервер хранит копии всех действительных токенов сеанса, вы также можете просто удалить этот токен.

DucksEatTurtles 09.04.2022 08:00

Отвечает ли это на ваш вопрос? Laravel 5 - выйти из системы пользователя со всех его устройств

Peppermintology 09.04.2022 08:01

Измените сеансы на базу данных, запросите и удалите сеансы. Затем обновите аутентификацию, чтобы убедиться, что пользователь находится в черном списке.

Garry 09.04.2022 19:26
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
34
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

вы можете сделать это:

  • добавить поле в таблицу пользователей blocked
  • добавить middleware, который проверяет blocked значение пользователя
  • если правда огонь Auth::logout();

для получения дополнительной информации, пожалуйста, проверьте следующую статью 3 способа удалить пользователя в Laravel: заблокировать, скрыть или принудительно удалить?

мне нужно сделать запрос к базе данных в каждом запросе

Chandan Kalita 09.04.2022 08:09

Кстати, у меня есть решение, и спасибо всем за вашу поддержку

Chandan Kalita 09.04.2022 08:10

Шаг 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,
        ....
        ],
     ....
     ....
],

Другие вопросы по теме