# ========================================== # 백엔드 고유 시크릿 (development) # # ⚠️ DB / Redis / CORS / PORT 는 루트 .env.development 에서 docker-compose 가 주입한다. # 여기에 중복 작성하지 말 것 (SSOT: 루트 .env — .claude/rules/env-structure.md). # 이 파일에는 "루트에서 내려주지 않는 값"만 작성한다. # # 사용법: cp .env.development.example .env.development # docker-compose 의 env_file 지시자 때문에 파일은 비어 있어도 존재해야 한다. # ========================================== # JWT 서명 키 — 액세스·리프레시 토큰을 서명한다. 환경마다 다른 값을 쓰고 절대 커밋하지 않는다. # 반드시 **무작위로 만든다.** 사람이 지은 문장·단어 조합·회사명·날짜 등은 쓰지 않는다 # (토큰 하나만 손에 넣으면 오프라인에서 키를 대입해 볼 수 있고, 맞히면 모든 직원의 토큰을 위조할 수 있다). # 만드는 법: openssl rand -base64 48 # (openssl 이 없으면) node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))" # 운영은 32자 이상이 아니면 기동하지 않는다 (src/shared/config/env.validation.ts). JWT_SECRET=change-me-generate-a-long-random-string # 만료 — 액세스 5분~1시간, 리프레시(미사용 만료) 30일 이하이며 액세스보다 길어야 한다 (env 검증). # 세션 절대 만료(로그인 후 30일)는 코드 상수다. JWT_ACCESS_EXPIRES_IN=1h JWT_REFRESH_EXPIRES_IN=14d