fix: 미들웨어 Supabase hang으로 인한 모바일 접속 불가 해결
- /api/ 경로 전체를 미들웨어 매처에서 제외 (각 API 라우트가 자체 인증 처리) - updateSession() 실패 시 try-catch로 페이지 접근 허용 (연결 hang 방지) - supabase.auth.getUser() 오류 시 세션 갱신 생략하고 통과 원인: 모든 요청에 실행되는 Edge Runtime 미들웨어에서 Supabase 외부 API 호출이 일시 지연/실패 시 Vercel이 연결을 강제 종료, Safari에서 "네트워크 서버를 찾을 수 없음"으로 표시됨 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -44,11 +44,21 @@ export async function middleware(request: NextRequest) {
|
||||
}
|
||||
}
|
||||
|
||||
return await updateSession(request);
|
||||
// API 라우트는 세션 갱신 불필요 — 각 API에서 독립적으로 인증 처리
|
||||
if (pathname.startsWith('/api/')) {
|
||||
return NextResponse.next();
|
||||
}
|
||||
|
||||
// Supabase 세션 갱신 — 실패해도 페이지 접근은 허용
|
||||
try {
|
||||
return await updateSession(request);
|
||||
} catch {
|
||||
return NextResponse.next({ request });
|
||||
}
|
||||
}
|
||||
|
||||
export const config = {
|
||||
matcher: [
|
||||
'/((?!_next/static|_next/image|favicon.ico|api/telegram/webhook|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)',
|
||||
'/((?!_next/static|_next/image|favicon.ico|api/|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)',
|
||||
],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user