generateMathCaptcha(); return view("auth.login"); } public function store(Request $request): RedirectResponse { $request->validate([ "email" => ["required", "string", "email"], "password" => ["required", "string"], "math_captcha" => ["required", "string", new MathCaptchaRule()], ]); if (!Auth::attempt($request->only("email", "password"), $request->boolean("remember"))) { return back()->withErrors([ "email" => __("auth.failed"), ])->onlyInput("email"); } $request->session()->regenerate(); return redirect()->intended(route("dashboard", absolute: false)); } public function destroy(Request $request): RedirectResponse { Auth::guard("web")->logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect("/"); } private function generateMathCaptcha(): void { $num1 = random_int(1, 10); $num2 = random_int(1, 10); $answer = $num1 + $num2; session([ "math_captcha_answer" => $answer, "math_captcha_question" => __("What is :num1 + :num2?", ["num1" => $num1, "num2" => $num2]), ]); } }