개발 slecs

Apple OAuth 콜백 CORS 차단

목차

fix(oauth): Apple OAuth 콜백 CORS 차단 해제

Apple OAuth가 구글/카카오랑 달리 까다로운 이유가 있음. form_post 방식을 강제하기 때문에 콜백이 POST로 들어오고, 이 과정에서 세션이 끊기거나 CORS 문제가 발생함.

Apple OAuth 특이사항

  • 콜백이 GET이 아닌 POST (form_post)
  • 봇 차단 필터가 Apple 서버 IP를 막아버릴 수 있음
  • CORS 설정에 Apple 콜백 URL 명시 필요
  • 연동 후 세션 재설정 필수

수정 흐름

BotBlockFilter → Apple 콜백 URL 예외 추가
WebMvcConfig → CORS 허용 URL 추가
OAuthController → 세션 재설정 로직 추가
버그 증상 해결책
CORS 차단 콜백 400 에러 WebMvcConfig에 Apple URL 허용
봇 필터 차단 콜백 403 에러 BotBlockFilter 예외 처리
세션 유실 로그인 실패 콜백 후 세션 강제 재설정
// 콜백 후 세션 재설정
session.setAttribute("loginUser", member);
session.setAttribute("sysId", member.getSysId());

SNS 연동은 provider마다 동작 방식이 달라서 결국 분기 처리함. 특히 Apple은 최초 인증 시만 이름/이메일을 넘겨주고 이후엔 안 줌. 첫 콜백 때 반드시 저장해야 함.

댓글 0

첫 댓글 달아줘.