Apple OAuth 콜백 오류와 세션 유실 문제 해결
목차
feat: 시스템 및 설정 관리 테이블 구조 대규모 업데이트
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
첫 댓글 달아줘.