johnnie
johnnie
Laravel
Comparte:

Autenticación una sola vez

Hola compañeros.
Espero que me ayudeis, tengo implementado mi sistema de login en Laravel, y necesito que el usuario solo pueda tener una session abierta,. Es decir si intenta abrir o logearse en otro navegador o dispositivo la session anterior se cierre.
Estuve probando con varias metodos del face Auth():: sendLoginResponse
pero no lo consigo hacer funcionar.
Jorge García
Jorge García (2780 xp)
Hola Johnnie, aquí te dejo la documentación donde se explica lo que necesitas: https://laravel.com/docs/9.x/authentication#invalidating-sessions-on-other-devices

Básicamente debes asegurarte de incluir este middleware:
Illuminate\Session\Middleware\AuthenticateSession
Y luego cuando quieras invalidar las demás sesiones puedes llamar a este método:
Auth::logoutOtherDevices($currentPassword);

1
johnnie
johnnie (46 xp)
gracias jorge, Lo probaré.
johnnie
johnnie (46 xp)
Además tuve que añadir esto a mi controlador.

  
 protected function authenticated(Request $request) 
    {   
        Auth::logoutOtherDevices($request->password);
        return redirect()->intended();
    }