validate([ 'email' => 'required|email', 'password' => 'required', ]); $credentials = $request->only('email', 'password'); $remember = $request->boolean('remember'); if (Auth::attempt($credentials, $remember)) { $request->session()->regenerate(); return redirect()->intended(route('halaman.prediksi')); } return back() ->withInput($request->only('email')) ->with('error', 'Email atau password salah.'); } // ── REGISTER ────────────────────────────────────── public function showRegister() { return view('login.register'); } public function register(Request $request) { $request->validate([ 'email' => 'required|email|unique:users,email', 'password' => 'required|min:8|confirmed', // confirmed = butuh field password_confirmation ], [ 'email.unique' => 'Email ini sudah terdaftar.', 'password.min' => 'Password minimal 8 karakter.', 'password.confirmed' => 'Konfirmasi password tidak cocok.', ]); // Ambil nama dari bagian sebelum @ di email $name = explode('@', $request->email)[0]; $user = User::create([ 'name' => $name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); Auth::login($user); return redirect()->route('halaman.prediksi'); } // ── LUPA PASSWORD ───────────────────────────────── public function showLupaPassword() { return view('login.lupa-password'); } public function resetPassword(Request $request) { $request->validate([ 'email' => 'required|email|exists:users,email', 'password' => 'required|min:8|confirmed', ], [ 'email.exists' => 'Email tidak ditemukan.', 'password.min' => 'Password minimal 8 karakter.', 'password.confirmed' => 'Konfirmasi password tidak cocok.', ]); User::where('email', $request->email)->update([ 'password' => Hash::make($request->password), ]); return redirect()->route('login')->with('success', 'Password berhasil diubah. Silakan masuk.'); } // ── LOGOUT ──────────────────────────────────────── public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/'); } }