Skip to content

Commit b6badbb

Browse files
i3monthsclaude
andcommitted
fix(infra): 액세스 토큰 수명 15분→1시간 (면접 중 만료 튕김 방지)
application.yml 기본 900s(15분)이라 면접 진행 중 토큰이 만료돼 401 → 답변 작성 중 튕기는 문제 발생(서버 로그: AUTH_EXPIRED_TOKEN on /api/sessions/{id}/messages, 세션 시작 3분 만에도 발생). - docker-compose backend env 에 JWT_ACCESS_TTL_SECONDS 매핑 추가 (기존엔 미매핑이라 .env 만으론 컨테이너에 전달 안 됨), 배포 기본 3600s - .env.example / docs/environment.md 동기화 refresh 경로 견고화(근본 수정)는 후속. 우선 만료 자체를 면접 길이 밖으로. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent ca36750 commit b6badbb

3 files changed

Lines changed: 6 additions & 1 deletion

File tree

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ SPRING_PROFILES_ACTIVE=local
5050
# JWT/암호화는 base64 32바이트. 운영은 반드시 GitHub Secrets(JWT_SECRET, ENCRYPTION_KEY)로 덮어쓸 것.
5151
JWT_SECRET=c3RhY2t1cC1zcHJpbnQxLWxvY2FsLWp3dC1zZWNyZXQtMzItYnl0ZXMtbG9uZw==
5252
ENCRYPTION_KEY=c3RhY2t1cC1zcHJpbnQxLWVuY3J5cHRpb24ta2V5QUI=
53+
# 액세스 토큰 수명(초). 기본 3600(1시간) — 면접 진행 중 토큰 만료로 튕기는 문제 방지.
54+
JWT_ACCESS_TTL_SECONDS=3600
5355
# AI 서버와 공유. 운영은 GitHub Secrets(CORE_INTERNAL_API_KEY)로 덮어쓸 것.
5456
CORE_INTERNAL_API_KEY=local-development-internal-api-key
5557
# GitHub OAuth (운영은 GitHub Secrets(GH_OAUTH_CLIENT_ID/SECRET)로 덮어쓸 것)

docker-compose.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,9 @@ services:
169169
# 비밀값은 .env 또는 GitHub Secrets 로 주입. 값이 비면 application-local.yml 의 dev default 적용.
170170
JWT_SECRET: ${JWT_SECRET:-}
171171
ENCRYPTION_KEY: ${ENCRYPTION_KEY:-}
172+
# 액세스 토큰 수명. application.yml 기본 900s(15분)은 면접 진행 중 만료로 이어져
173+
# 배포 기본을 3600s(1시간)로 상향. 필요 시 .env(JWT_ACCESS_TTL_SECONDS)로 override.
174+
JWT_ACCESS_TTL_SECONDS: ${JWT_ACCESS_TTL_SECONDS:-3600}
172175
CORE_INTERNAL_API_KEY: ${CORE_INTERNAL_API_KEY:-local-development-internal-api-key}
173176
GITHUB_OAUTH_CLIENT_ID: ${GITHUB_OAUTH_CLIENT_ID:-}
174177
GITHUB_OAUTH_CLIENT_SECRET: ${GITHUB_OAUTH_CLIENT_SECRET:-}

docs/environment.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ SERVER_PORT=8080
6969
7070
# ===== Auth =====
7171
JWT_SECRET= # base64-encoded 32+ bytes (필수, default 없음)
72-
JWT_ACCESS_TTL_SECONDS=900 # 15min
72+
JWT_ACCESS_TTL_SECONDS=3600 # 1h (배포 기본; app.yml fallback 900). 면접 중 토큰 만료 방지용 상향
7373
JWT_REFRESH_TTL_SECONDS=1209600 # 14d
7474
7575
ENCRYPTION_KEY= # AES-256 key, base64 32 bytes (필수)

0 commit comments

Comments
 (0)