Команда Artisan для очистки всех данных сеанса в Laravel - PullRequest
0 голосов
/ 07 июня 2018

Что такое кустарная команда для очистки всех данных сеанса в Laravel, я ищу что-то вроде:

$ php artisan session:clear

Но, видимо, она не существует.Как бы удалить его из командной строки?

Я пытался использовать

$ php artisan tinker  
...
\Session::flush();

Но он сбрасывает сеанс только одного пользователя, я хочу сбросить все сеансы для всех пользователей.Как я могу это сделать?

Я попробовал это:

artisan cache:clear

Но сессия снова не очищается.

Ответы [ 3 ]

0 голосов
/ 26 августа 2018

Простой способ избавиться от всех сессий - это изменить имя куки сессии.Это можно легко сделать, изменив строку 'cookie' => '...' в файле config/session.php.

Это работает независимо от используемого хранилища сеанса и также не затрагивает другие данные, кроме данных сеанса (и, таким образом, кажется,предпочтительнее, чем обновление ключа приложения, когда вы потеряете все зашифрованные данные, хранящиеся в приложении).

0 голосов
/ 14 декабря 2018
rm -f storage/framework/sessions/*
0 голосов
/ 07 июня 2018

ОБНОВЛЕНИЕ: этот вопрос, кажется, задают довольно часто, и многие люди все еще активно комментируют его.

На практике это ужасная идея сбрасывать сессии, используя

php artisan key:generate

Это может привести к разного рода разрушениям.Лучший способ сделать это - очистить систему, которую вы используете.


Руководство для ленивых программистов по очистке всех сессий:

php artisan key:generate

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

Не очень ленивый подход

php artisan make:command FlushSessions

и затем вставьте

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use DB;

class flushSessions extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'session:flush';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Flush all user sessions';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        DB::table('sessions')->truncate();
    }
}

, а затем

php artisan session:flush
...