피드로 돌아가기
Guitar Recording Auto-Post to X: OAuth 1.0a Server-Side + Twitter Intent Fallback
Dev.toDev.to
Security

OAuth 1.0a Server-Side 처리 및 Twitter Intent Fallback을 통한 공유 무중단 구조 설계

Guitar Recording Auto-Post to X: OAuth 1.0a Server-Side + Twitter Intent Fallback

kanta13jp12026년 4월 17일4intermediate

Context

클라이언트 사이드 API Key 노출 위험과 X API의 엄격한 인증 체계로 인한 보안 취약점 발생. 네트워크 타임아웃 및 Rate Limit 발생 시 사용자의 공유 경험이 완전히 단절되는 병목 지점 확인.

Technical Solution

  • Supabase Edge Functions를 중간 계층으로 배치하여 X API OAuth Keys를 서버 사이드 Secrets로 격리한 보안 구조 설계
  • Flutter 클라이언트에서 Edge Function 호출 실패 시 Twitter Intent URL로 자동 전환하는 Fallback 메커니즘을 통한 공유 가용성 확보
  • Edge Function 내에서 user_id 필터링과 is_public 플래그 검증을 수행하여 타인 레코딩 무단 공유를 차단하는 서버 사이드 Ownership Check 구현
  • Unicode code points 기반의 문자열 Spread 연산자를 활용하여 이모지를 포함한 X API의 280자 제한을 정확히 계산하는 텍스트 가드 로직 적용
  • Flutter의 Named Parameter를 활용해 저장 직후와 리스트 조회 시의 서로 다른 public 상태값을 일관되게 처리하는 인터페이스 설계

1. API Key 등 민감 정보의 클라이언트 노출 방지를 위한 Proxy 서버/Edge Function 도입 여부 검토

2. 외부 API 의존성이 높은 기능에 대해 최소한의 사용자 경험을 보장하는 Fallback Path 설계

3. 클라이언트 요청 데이터에 의존하지 않고 서버 세션/JWT 기반의 리소스 소유권 검증 로직 필수 구현

4. 다국어 및 이모지가 포함된 텍스트 처리 시 Byte 단위가 아닌 Unicode Code Point 기반의 길이 측정 적용

원문 읽기