[Google OAuth]
- login/page.tsx: NODE_ENV=development일 때 NEXT_PUBLIC_SITE_URL 무시하고
window.location.origin(localhost) 사용
- auth/callback/route.ts: dev에서는 항상 request origin 사용하도록 수정
(이전: siteUrl이 없을 때만 origin 사용 → dev이면 무조건 origin)
[TossPayments]
- confirm/route.ts: 실수로 dev에서 live 키 사용 시 console.warn 추가
- PaymentButton.tsx: NEXT_PUBLIC_TOSS_CLIENT_KEY가 test_ck_* 이면
버튼 우상단에 TEST 배지 표시 (dev 확인용)
[환경변수 구조]
- dev (.env.local): test_ck_*, test_sk_* → 테스트 결제 (실청구 없음)
- prod (Vercel ENV): live_ck_*, live_sk_* → 실결제
- 코드 변경 없이 같은 변수명으로 환경별 키만 다르게 설정
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- app/auth/callback/route.ts: NEXT_PUBLIC_SITE_URL 우선, x-forwarded-host 폴백
Vercel 내부 라우팅에서 request.url의 origin이 localhost로 잡히는 경우 대응
- app/login/page.tsx: signInWithOAuth redirectTo를 NEXT_PUBLIC_SITE_URL 기준으로 변경
window.location.origin 대신 명시적 환경변수 사용으로 안정성 확보
Vercel 환경변수에 NEXT_PUBLIC_SITE_URL=https://<도메인> 추가 필요
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>