No olvides que en las ciencias un error casi siempre tiene varias soluciones, de igual modo nosotros te mostramos lo mejor y más óptimo.
Solución:
En tus web.php
(rutas):
agregar:
Route::get('logout', 'AppHttpControllersAuth[email protected]');
En tus LoginController.php
agregar:
public function logout(Request $request)
Auth::logout();
return redirect('/login');
Además, en la parte superior de LoginController.php
después namespace
agregar:
use Auth;
Ahora, puede cerrar la sesión usando yourdomain.com/logout
URL o si ha creado logout button
agregue href a /logout
Bueno, incluso si lo que sugiere @Tauras simplemente funciona, no creo que sea la forma correcta de lidiar con esto.
Dijiste que has corrido php artisan make:auth
que también debería haber insertado Auth::routes();
en tus routes/web.php
archivos de enrutamiento. Que viene por defecto logout
ruta ya definida y tiene nombre logout
.
Puede verlo aquí en GitHubpero también informaré el código aquí por simplicidad:
/**
* Register the typical authentication routes for an application.
*
* @return void
*/
public function auth()
// Authentication Routes...
$this->get('login', 'Auth[email protected]')->name('login');
$this->post('login', 'Auth[email protected]');
$this->post('logout', 'Auth[email protected]')->name('logout');
// Registration Routes...
$this->get('register', 'Auth[email protected]')->name('register');
$this->post('register', 'Auth[email protected]');
// Password Reset Routes...
$this->get('password/reset', 'Auth[email protected]')->name('password.request');
$this->post('password/email', 'Auth[email protected]')->name('password.email');
$this->get('password/reset/token', 'Auth[email protected]')->name('password.reset');
$this->post('password/reset', 'Auth[email protected]');
Por otra parte, tenga en cuenta que logout
requierePOST
como método de solicitud HTTP. Hay muchas razones válidas detrás de esto, pero solo por mencionar una muy importante es que de esta manera puedes prevenir falsificación de solicitud entre sitios.
Entonces, de acuerdo con lo que acabo de señalar, una forma correcta de implementar esto podría ser solo esta:
Logout
Finalmente, tenga en cuenta que he insertado laravel fuera de la función lista para usar csrf_field()
!
Puede usar lo siguiente en su controlador:
return redirect('login')->with(Auth::logout());
Si posees algún enigma y disposición de medrar nuestro reseña eres capaz de escribir una interpretación y con mucho placer lo observaremos.