Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

334
Views
¿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 answers
Answer question

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 Report

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 Report

0

Puede usar lo siguiente en su controlador:

 return redirect('login')->with(Auth::logout());
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!