middleware('guest'); } /** * Display the password reset view for the given token. * * @param \Illuminate\Http\Request $request * @param string|null $token * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function showResetForm(Request $request, $token = null) { // Pass token directly as a query parameter instead of route parameter return redirect()->route('home', [ 'token' => $token, 'email' => $request->email, 'reset' => 'true' // Add explicit reset parameter for more compatibility ])->with('reset', true); } /** * Override the reset method from the trait to prevent auto-login * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse */ public function reset(Request $request) { $request->validate($this->rules(), $this->validationErrorMessages()); // Here's the main change - instead of using the trait reset method, // we implement a custom reset logic without the auto-login $response = $this->broker()->reset( $this->credentials($request), function ($user, $password) { $this->resetPassword($user, $password); // Don't login the user automatically // Auth::guard()->login($user); <-- This line is removed } ); // If the password was successfully reset, we will redirect the user back to // the application's home authenticated view with a success message. return $response == Password::PASSWORD_RESET ? $this->sendResetResponse($request, $response) : $this->sendResetFailedResponse($request, $response); } /** * Reset the given user's password. * * @param \Illuminate\Contracts\Auth\CanResetPassword $user * @param string $password * @return void */ protected function resetPassword($user, $password) { $user->password = bcrypt($password); $user->setRememberToken(Str::random(60)); $user->save(); event(new PasswordReset($user)); // Don't login automatically // $this->guard()->login($user); <-- This line is removed } /** * Get the response for a successful password reset. * * @param \Illuminate\Http\Request $request * @param string $response * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse */ protected function sendResetResponse(Request $request, $response) { // Redirect to home with success message and open login modal return redirect()->route('home') ->with('success', 'Password berhasil direset.') ->with('login_error', 'Silakan login dengan password baru Anda.'); } /** * Get the response for a failed password reset. * * @param \Illuminate\Http\Request $request * @param string $response * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse */ protected function sendResetFailedResponse(Request $request, $response) { // Return to home with reset modal open showing the error return redirect()->route('home', [ 'token' => $request->token, 'email' => $request->email, 'reset' => 'true' // Add explicit reset parameter for more compatibility ]) ->with('reset', true) ->with('error', trans($response)) ->withErrors(['email' => trans($response)]); } }