query('token'); $email = $request->query('email'); return view('auth.reset-password', compact('token', 'email')); } public function reset(Request $request) { $request->validate([ 'email' => 'required|email', 'token' => 'required', 'password' => 'required|confirmed|min:8', ]); // トークンチェック $record = DB::table('password_reset_tokens') ->where('ope_mail', $request->email) ->where('token', $request->token) ->first(); if (!$record) { return back()->withErrors(['email' => '無効なトークンまたはメールアドレスです。']); } // パスワード更新 $user = Ope::where('ope_mail', $request->email)->first(); if (!$user) { return back()->withErrors(['email' => 'ユーザーが見つかりません。']); } $user->password = Hash::make($request->password); $user->updated_at = now(); // パスワード再設定時もope_pass_changed_atを更新 $user->ope_pass_changed_at = now(); $user->save(); // トークン削除 DB::table('password_reset_tokens')->where('ope_mail', $request->email)->delete(); // パスワード再設定成功画面へリダイレクト return redirect()->route('password.change.success'); } }