Как вернуть пользователя на ту же страницу после выхода в laravel

У меня есть маршруты, которые доступны для гостевых и аутентифицированных пользователей, но дело в том, как вернуть зарегистрированных пользователей обратно на ту же страницу, а не на домашнюю страницу после нажатия кнопки выхода?

-1

Решение

* при условии, что вы используете аутентификацию.

  1. Идти к: your_project\vendor\laravel\framework\src\Illuminate\Foundation\Auth\ AuthenticatesUsers.php

  2. найти logout функционировать и просто изменить возврат back();

Но вы думаете, что это плохая практика, так как вы можете отправить пользователя обратно на неавторизованную страницу, и он получит исключение ошибки.

0

Другие решения

Чтобы избавиться от проблемы, как сказал @onix. просто добавьте скрытый вход и проверьте, если он выходит из метода выхода.

public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
if($request->has('go_back')) {
return redirect()->back();
}
return redirect('/');
}

<form action="{{ route('signout') }}" method="POST">
{{ csrf_field() }}
@if(\Route::current()->getName() == 'freedom'))
<input type="hidden" name="go_back">
@endif
<button type="submit">Logout</button>
</form>
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector