1.문제 정의
- 문제 요약 : 로그인 성공시 RefreshToken을 쿠키 발급 안되는 문제 발생
- 발생 일시 : 2024년 5월 21일
- 발생 장소 : 배포된 웹사이트
2. 증상 기술
- 상세 증상 : 로그인 성공시 RefreshToken을 쿠키를 통해 발급을 하나, 새로고침시 쿠키가 삭제되는 버그 발생
3. 원인 분석
- 원인 가설 :
- 쿠키 발급 시 리다이렉트 주소가 프론트 URL로 설정되지 않아 쿠키가 전송되지 않을 가능성
- 쿠키 생성 방식에 문제가 있을 가능성
- 쿠키 생성 시 옵션이 설정되지 않아 쿠키가 삭제될 가능성
- 쿠키가 HTTPS 대신 HTTP로 발급되어 문제가 발생할 가능성
- 검증 과정 :
- 리다이렉트 주소를 프론트 URL로 변경하여 문제를 확인했습니다.
- 기존 쿠키 발급 방식을 ResponseCookie를 사용하여 변경하고 확인했습니다.
- 쿠키 발급 시 sameSite, httpOnly, secure 옵션을 설정하여 테스트했습니다.
- SSL/TLS 인증서를 사용하여 백엔드 서버를 HTTPS로 전환하고 확인했습니다.
- 최종 원인 : HTTPS를 통해 쿠키를 발급하지 않아 SameSite 옵션을 사용할 수 없었고, 이로 인해 쿠키가 새로고침 시 삭제되는 문제가 발생한 것을 확인했습니다.
4. 해결 방법
- 조치 내용 :
- 백엔드 서버를 HTTPS로 전환
- 쿠키 생성시 ResponseCookie로 생성하여 sameSite, httpOnly, secure 옵션을 설정하여 전송
- 변경 사항 :
- HTTPS 변경시 사용된 인증서 정보를 Jenkins에서 인증서를 넣도록 수정
- 결과 확인 : 정상적으로 로그인후에 다른 페이지로 이동해도 쿠키가 삭제되지않는것을 확인했습니다.
5. 추가 참고 자료