Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

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

Estoy usando Laravel 5.4 e intento implementar un sistema de autenticación. Utilicé el comando php craft make:auth para configurarlo. Edité las vistas de acuerdo con mi diseño. Ahora, cuando intento cerrar la sesión, me arroja este error

NotFoundHttpException en RouteCollection.php línea 161:

¿alguien podría ayudarme a cerrar la sesión?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En tu web.php (rutas):

agregar:

 Route::get('logout', '\App\Http\Controllers\Auth\LoginController@logout');

En su LoginController.php

agregar:

 public function logout(Request $request) { Auth::logout(); return redirect('/login'); }

Además, en la parte superior de LoginController.php , después del espacio de namespace

agregar:

 use Auth;

Ahora, puede cerrar sesión usando yourdomain.com/logout URL o si ha creado un logout button de sesión, agregue href a /logout

about 4 years ago · Santiago Trujillo Denunciar

0

Bueno, incluso si lo que sugiere @Tauras simplemente funciona, no creo que sea la forma correcta de lidiar con esto.

Dijiste que ejecutaste php artisan make:auth que también debería haber insertado Auth::routes(); en sus archivos de enrutamiento de routes/web.php . Que viene con la ruta de cierre de logout predeterminada ya definida y se llama logout .

Puede verlo aquí en GitHub , pero también informaré el código aquí para simplificar:

 /** * Register the typical authentication routes for an application. * * @return void */ public function auth() { // Authentication Routes... $this->get('login', 'Auth\LoginController@showLoginForm')->name('login'); $this->post('login', 'Auth\LoginController@login'); $this->post('logout', 'Auth\LoginController@logout')->name('logout'); // Registration Routes... $this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register'); $this->post('register', 'Auth\RegisterController@register'); // Password Reset Routes... $this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request'); $this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email'); $this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset'); $this->post('password/reset', 'Auth\ResetPasswordController@reset'); }

Por otra parte, tenga en cuenta que el cierre de logout requiere POST como método de solicitud HTTP. Hay muchas razones válidas detrás de esto, pero solo para mencionar una muy importante es que de esta manera puede evitar la falsificación de solicitudes entre sitios .

Entonces, de acuerdo con lo que acabo de señalar, una forma correcta de implementar esto podría ser solo esta:

 <a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('frm-logout').submit();"> Logout </a> <form id="frm-logout" action="{{ route('logout') }}" method="POST" style="display: none;"> {{ csrf_field() }} </form>

Finalmente, tenga en cuenta que he insertado laravel lista para usar función {{ csrf_field() }} !

about 4 years ago · Santiago Trujillo Denunciar

0

Puede usar lo siguiente en su controlador:

 return redirect('login')->with(Auth::logout());
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda