How can i redirect to login if user tries logout route directly

407 Views Asked by At

Everything in this login is working fine but if a user tries logout route directly

localhost:8000/logout it shows the following error

enter image description here

i want a way so that i can redirect to login if the route is called directly, what could be the vest way for it.

3

There are 3 best solutions below

1
On BEST ANSWER

define a route like this in your routes file. It is because only post method exist for logout.

Route::get('logout', function() {
   return redirect()->route('login');
});
2
On

A word of caution: As Laurel mentioned in this comments, using GET request for Logout is a bad idea, Read this discussion on StackOverflow before proceeding.

Where is the problem?

The error message is self explanatory.

The logout route doesn't support HTTP Method GET, but POST.

What is the solution?

You can define a GET route for logout, if you really wants to do it.

Route::get('logout', function() {
   // Do whatever you want to do with Logout
  Auth::logout(); // logout the user
  return redirect()->route('login'); // redirect the user to login page
});
1
On
Route::get('check_logout','ExampleController@check_logout');
Route::get('logout',function(){
    return redirect('login');
});