Laravel 5 Auth Logout не разрушает сеанс
Я использую Laravel5 авт системы для моего нового проекта, я могу использовать для регистрации и входа функции с любой проблемой, но выход не работает, как ожидалось, но я получаю перенаправлены на URL, указанный в $redirectAfterLogout
но это не разрушает сессии, так что даже после удара кнопка выхода, я могу видеть панель приборов.
Есть ли у laravel какая-то ошибка в системе Auth, пожалуйста, предложите, спасибо



Ответы - Laravel 5 Auth Logout не разрушает сеанс / Laravel 5 Auth Logout not destroying session

14.04.2015 11:37:21
В вашем случае вы, вероятно, не достигаете метода logout (). Если вы используете Laravel 5 builting auth механизм, то вы будете запускать AuthenticatesAndRegistersUsers trait getLogout () метод, который делает $this->auth->logout();
Найдите этот код, отредактируйте метод, как показано ниже, для отладки. Если вы видите строку "выход из системы", то вы должны выйти из системы. Ohterwise что-то не так с вашей маршрутизацией, и выход из системы просто никогда не выполняется.
/**
* Log the user out of the application.
*
* @return \Illuminate\Http\Response
*/
public function getLogout()
{
dd("Logging out");
$this->auth->logout();
return redirect('/');
}



auth->user()
но почему страница входа перенаправляется на панель мониторинга даже после выхода из системы.






08.09.2015 07:01:39
Я боролся с этим и пришел к решению.
Короче говоря: сеанс Laravel читает и записывает с помощью промежуточного программного обеспечения. Он считывает сохраненный сеанс в начале запроса и записывает любые изменения в конце запроса. Если вы делаете редирект, то текущий запрос никогда не завершается, и запись промежуточного программного обеспечения не происходит.
Итак, как это исправить? В зависимости от вашей реализации... вы должны return
команду перенаправления, а не вызывать ее напрямую.
return redirect($redirectAfterLogout)

09.02.2016 06:39:26
Я столкнулся с подобной проблемой, и оказалось, что с помощью драйвера "file" для сеансов каким-то образом сервер создавал файлы, которые он не мог изменить позже, но не было никакого предупреждения о разрешении файла. Я переключился на реализацию redis, поэтому, к сожалению, не могу сказать, как исправить проблему создания файла, но подумал, что это может сэкономить кому-то некоторое время.

26.05.2016 11:37:09
Кажется, что в
/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
function getLogout()
никогда не достигается, поэтому logout()
никогда не срабатывает.
В моем случае, в моем
/app/Http/routes.php
Я думаю об этом:
Route::get('auth/logout', 'Auth\AuthController@getLogout');
Я изменил его на:
Route::get('auth/logout', 'Auth\AuthController@logout');


26.05.2016 08:56:32
Используя Laravel 5.2, я зарегистрировал прослушиватель, обработал событие выхода из системы и вызвал Session::flush, как было предложено выше. Похоже, это сработало довольно хорошо. Надеюсь, это будет полезно.
EventServiceProvider.РНР
protected $listen = [
'App\Events\SomeEvent' => [
'App\Listeners\EventListener',
],
'Illuminate\Auth\Events\Logout' => [
'App\Listeners\ClearSessionAfterUserLogout'
],
];
ClearSessionAfterUserLogout.РНР
public function handle(Logout $event)
{
Session::flush();
}


23.12.2016 04:58:11
Принимая объект запроса в действии контроллера (не забудьте добавить это после объявления пространства имен контроллера: use Auth; ):
/**
*
* Render page
*
* @route POST /user/{user_id}/logout
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function logout(Request $request) {
Auth::logout();
$request->session()->flush();
}

13.02.2017 03:39:38
У меня была та же проблема, и я перепробовал все, но в конце концов я смог ее исправить.
Моя проблема заключалась в том, что когда я нажимал на кнопку выхода, до этого у меня были некоторые http-запросы, на которые еще не было ответа, поэтому даже когда пользователь выходил из системы, позже с ответом на ожидающие запросы он снова входил в систему. Вот такой пример:
Another Request | ***********************************
Logout Request | ********************
|
Time | --|------|-------------------|------|------>
t1 t2 t3 t4
Так что удаление этих неотвеченных запросов сработало для меня. Я надеюсь, что этот ответ поможет вам :)




15.07.2017 08:58:26
Вы можете просто переопределить метод выхода из системы в AuthController.РНР
Вот пример кода:
public function logout(){
Session::flush();
Auth::guard($this->getGuard())->logout();
return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/');
}

20.07.2017 02:49:23
признак AuthenticatesUsers
public function logout(Request $request)
изменить это
$request->session()->regenerate();
до настоящего времени
$request->session()->regenerate(true);
