$request->url()]); return (new Pipeline(app())) ->send($request) ->through($this->sessionPipeline()) ->then(function ($request) use ($next) { Log::info('[StartApiSession] 세션 파이프라인 완료', [ 'hasSession' => $request->hasSession(), 'sessionStarted' => $request->hasSession() ? $request->session()->isStarted() : false, 'sessionId' => $request->hasSession() ? $request->session()->getId() : null, ]); $response = $next($request); Log::info('[StartApiSession] 컨트롤러 응답 후', [ 'status' => $response->getStatusCode(), 'cookies' => collect($response->headers->getCookies())->map(fn($c) => $c->getName())->all(), 'webGuardCheck' => \Illuminate\Support\Facades\Auth::guard('web')->check(), ]); return $response; }); } /** * 세션 파이프라인 미들웨어 목록을 반환합니다. * * CSRF 검증(VerifyCsrfToken)과 sanctum 속성 설정은 포함하지 않습니다. * * @return array 미들웨어 클래스 목록 */ protected function sessionPipeline(): array { return [ \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, ]; } }