diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index b282bda66..efd1f082f 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -128,6 +128,10 @@ class LoginController extends Controller // No valid trusted device cookie, proceed with 2FA verification // Store intended URL for redirecting after 2FA verification $request->session()->put('url.intended', $this->redirectPath()); + + // Store rememberme preference in the session for 2FA flow + $request->session()->put('2fa:remember', $rememberMe); + Auth::logout(); // Store user ID in the session for 2FA verification diff --git a/app/Http/Controllers/PasswordSecurityController.php b/app/Http/Controllers/PasswordSecurityController.php index d5c2f2e25..2eaa2e0fd 100644 --- a/app/Http/Controllers/PasswordSecurityController.php +++ b/app/Http/Controllers/PasswordSecurityController.php @@ -149,8 +149,11 @@ class PasswordSecurityController extends Controller ->with('message_type', 'danger'); } - // Log the user back in - Auth::login($user); + // Get the remember me preference from session (defaults to false if not set) + $rememberMe = $request->session()->get('2fa:remember', false); + + // Log the user back in with the remember me preference + Auth::login($user, $rememberMe); // Mark the user as having passed 2FA session([config('google2fa.session_var') => true]); @@ -158,8 +161,8 @@ class PasswordSecurityController extends Controller // Store the timestamp for determining how long the 2FA session is valid session([config('google2fa.session_var').'.auth.passed_at' => time()]); - // Clean up the temporary session variable - $request->session()->forget('2fa:user:id'); + // Clean up the temporary session variables + $request->session()->forget(['2fa:user:id', '2fa:remember']); // Determine where to redirect after successful verification $redirectUrl = $request->session()->pull('url.intended', '/');