Saltar al contenido

¿Cómo cerrar sesión y redirigir a la página de inicio de sesión usando Laravel 5.4?

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.phpdespués namespace

agregar:

use Auth;

Ahora, puede cerrar la sesión usando yourdomain.com/logout URL o si ha creado logout buttonagregue 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 logoutrequierePOST 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.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *