피드로 돌아가기
Supabase's Management API OAuth Endpoint Switches From 201 to 200 on May 26 — Here's What Silently Breaks
Dev.toDev.to
Backend

OAuth 2.1 스펙 준수를 위한 201→200 상태 코드 변경 및 이에 따른 하위 호환성 분석

Supabase's Management API OAuth Endpoint Switches From 201 to 200 on May 26 — Here's What Silently Breaks

FlareCanary2026년 5월 11일9intermediate

Context

Supabase Management API의 OAuth token exchange 엔드포인트가 비표준 응답 코드인 201 Created를 사용해 옴. 일부 엄격한 OAuth 클라이언트에서 토큰 교환 실패가 발생하는 제약 사항을 해결하기 위해 OAuth 2.1 표준 스펙인 200 OK로 전환하는 결정임.

Technical Solution

  • OAuth 2.1 Section 3.2.3 스펙 준수를 통한 상호운용성 확보를 위해 HTTP 상태 코드를 201에서 200으로 변경
  • 응답 Body 및 Header의 변경 없이 상태 라인(Status Line)만 수정하여 API 인터페이스의 일관성 유지
  • 2XX 범위 전체를 성공으로 처리하는 추상화 라이브러리(axios, Fetch API 등)를 통한 영향도 최소화 설계
  • 엄격한 일치 검사(Strict Equality)를 사용하는 커스텀 핸들러의 오류 경로 진입 가능성 식별
  • Single-use 특성을 가진 Authorization Code가 200 응답 시 에러로 오인되어 재요청될 때 발생하는 'invalid_grant' 문제 분석

1. HTTP 응답 검증 시 `status === 201` 대신 `status >= 200 && status < 300` 범위 검증 적용

2. CI 환경의 테스트 Fixture 및 Snapshot이 실제 프로덕션 API의 응답 코드 변경을 반영하는지 검토

3. API 변경 사항 모니터링 시 Body뿐만 아니라 Status Code 및 Header의 Diff를 감지하는 관찰 가능성(Observability) 확보

4. 외부 API 통합 시 상태 코드 추상화 계층을 도입하여 세부 코드 변경에 유연하게 대응

원문 읽기