Skip to content

[fix] 앱을 닫아도 로그인 유지되도록 세션 쿠키 max-age 추가 - #239

Merged
minwoo-3 merged 4 commits into
developfrom
fix/session-cookie-max-age
Oct 10, 2026
Merged

minwoo-3 merged 4 commits into
developfrom
fix/session-cookie-max-age

Conversation

@minwoo-3

@minwoo-3 minwoo-3 commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

✨ 작업 내용

PWA·브라우저를 닫았다가 다시 열면 매번 다시 로그인해야 하는 문제를 고칩니다.

  • SESSION 쿠키에 max-age를 추가했습니다. 이제 브라우저 세션 쿠키가 아니라 영속 쿠키라서 앱을 닫아도 남습니다.
  • 세션 유지 기본값을 7일에서 30일로 늘렸습니다(application.yaml, compose.prod.yaml).
  • 서버 세션 timeout과 쿠키 max-age는 같은 SESSION_TIMEOUT을 씁니다. 그래서 둘이 서로 다르게 만료되지 않습니다.
  • .env.example에 SESSION_TIMEOUT 설명을 추가했습니다.

🔍 리뷰 시 참고사항

  • 원인: 쿠키에 만료 시간이 없어서 브라우저 세션 쿠키였습니다. iOS 홈 화면 PWA는 앱을 종료하면 이 쿠키를 지웁니다. 세션은 Redis에 7일 동안 남아 있었지만 쿠키가 없어서 로그아웃된 상태가 됐습니다.
  • Spring Boot 4.1은 server.servlet.session.cookie.max-age를 Spring Session의 DefaultCookieSerializer.setCookieMaxAge에 적용합니다. spring-boot-session-4.1.1 자동 구성에서 확인했습니다.
  • 쿠키 만료 시각은 로그인할 때 정해지고 요청이 와도 늘어나지 않습니다. 따라서 로그인하고 30일이 지나면 다시 로그인해야 합니다.
  • DEC-016의 "무요청 만료 기본 7일" 문구는 하네스 레포에서 따로 수정해야 합니다.
  • 운영 .env에 SESSION_TIMEOUT=7d처럼 값이 있으면 그 값이 우선합니다. 비워 두거나 30d로 바꿔야 합니다.

✅ 체크리스트

  • 문서(README, .env.example 등) 변경이 필요한 경우 작성 또는 수정했나요?
  • 작업한 코드가 정상적으로 동작하는 것을 직접 확인했나요? (로컬에 Postgres·Redis가 없어 ./gradlew build 통합 테스트를 실행하지 못했습니다. CI 결과로 확인합니다.)
  • 필요한 경우 테스트 코드를 작성하거나 수정했나요? (설정 값만 바꿔 테스트를 추가하지 않았습니다.)
  • Merge 대상 브랜치를 올바르게 설정했나요?
  • PR에 관련 없는 작업이 포함되지 않았나요?
  • 적절한 라벨과 리뷰어를 설정했나요?

📎 관련 이슈(선택)

@minwoo-3
minwoo-3 merged commit fa27c73 into develop Oct 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants