validate([ 'email' => ['required', 'email'] ], [ 'email.required' => 'Email wajib diisi.', 'email.email' => 'Format email tidak valid.' ]); $user = User::where('email', $request->email)->first(); if (!$user) { return back()->withErrors([ 'email' => 'Email tidak ditemukan dalam sistem.' ])->withInput(); } // Simpan email ke session, redirect ke form password baru session(['reset_email' => $request->email]); return redirect()->route('password.direct.form'); } // Langkah 3: Tampil form password baru public function showResetForm() { if (!session('reset_email')) { return redirect()->route('password.request') ->withErrors(['email' => 'Sesi tidak valid, silakan ulangi.']); } return view('auth.reset-password-direct'); } // Langkah 4: Simpan password baru public function resetPassword(Request $request) { $request->validate([ 'password' => ['required', 'confirmed', 'min:8'] ], [ 'password.required' => 'Password wajib diisi.', 'password.confirmed' => 'Konfirmasi password tidak cocok.', 'password.min' => 'Password minimal 8 karakter.' ]); $email = session('reset_email'); if (!$email) { return redirect()->route('password.request') ->withErrors(['email' => 'Sesi tidak valid, silakan ulangi.']); } $user = User::where('email', $email)->first(); if (!$user) { return redirect()->route('password.request') ->withErrors(['email' => 'User tidak ditemukan.']); } $user->password = Hash::make($request->password); $user->save(); // Hapus session session()->forget('reset_email'); return redirect()->route('login') ->with('status', 'Password berhasil diubah! Silakan masuk dengan password baru.'); } }