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

Делаю панель администратора. Где я даю возможность занести пользователя в черный список. Если пользователь вошел в систему во время внесения в черный список, как я могу уничтожить его сеанс. его сеанс имеет следующие ключи: 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
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Что нового в PHP 8.1?
Что нового в PHP 8.1?
Если вы все еще используете PHP 7, то эта статья для вас. В PHP 8, а именно в PHP 8.1, встроены некоторые очень востребованные функции, которые вам...
Разработка LMS на заказ для повышения эффективности работы и обучения
Разработка LMS на заказ для повышения эффективности работы и обучения
За последние годы в образовании произошла большая революция, и сегодня почти все учебные заведения делают упор на эксклюзивное управление учебным...
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,
        ....
        ],
     ....
     ....
],

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