validate([ 'email' => ['required', 'string', 'email'], 'password' => ['required', 'string'], 'remember' => ['boolean'], ]); if (! Auth::attempt( $request->only('email', 'password'), $request->boolean('remember') )) { throw ValidationException::withMessages([ 'email' => [__('auth.failed')], ]); } $request->session()->regenerate(); return response()->json(['user' => Auth::user()]); } public function logout(Request $request): JsonResponse { Auth::guard('web')->logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return response()->json(['message' => 'Logged out']); } public function user(Request $request): JsonResponse { return response()->json($request->user()); } }