get('tmpUserOTP'); if (!$user) return redirect(RouteServiceProvider::HOME); return view('auth.verify'); } public function check(Request $request) { $otp1 = $request->otp1; $otp2 = $request->otp2; $otp3 = $request->otp3; $otp4 = $request->otp4; $otp5 = $request->otp5; $otp6 = $request->otp6; $otp = $otp1 . $otp2 . $otp3 . $otp4 . $otp5 . $otp6; $user = session()->get('tmpUserOTP'); if (!$user) return redirect(RouteServiceProvider::HOME); $lastCode = (new Totp())->GenerateToken(Base32::decode($user->totp_secret), Carbon::now()->subSeconds(30)->timestamp); $code = (new Totp())->GenerateToken(Base32::decode($user->totp_secret)); if ($otp === $code || $otp === $lastCode) { Auth::login($user); return redirect(RouteServiceProvider::HOME); } else { Auth::logout(); Session::flush(); return redirect()->route('verification_failed'); } } }