- middleware: JWT MapClaims 타입 단언 패닉 → ok 패턴으로 방어 - auth/service: Redis Set 오류 처리, 지갑 생성 실패 시 유저 롤백 - auth/service: EnsureAdmin 지갑 생성 추가, Logout 리프레시 토큰도 삭제 - auth/service: 리프레시 토큰 발급(7일) 및 로테이션, REFRESH_SECRET 분리 - auth/handler: Login 응답에 refreshToken 포함, Refresh 핸들러 추가 - auth/handler: Logout 에러 처리 추가 - download/service: hashGameExeFromZip io.Copy 오류 처리 - download/handler: Content-Disposition mime.FormatMediaType으로 헤더 인젝션 방어 - announcement/handler: Update 빈 body 400 반환 - config: REFRESH_SECRET 환경변수 추가 - routes: POST /api/auth/refresh 엔드포인트 추가 - main: INTERNAL_API_KEY 미설정 시 경고 출력 - .env.example: 누락 환경변수 7개 보완 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
19
.env.example
19
.env.example
@@ -10,7 +10,22 @@ REDIS_ADDR=localhost:6379
|
||||
REDIS_PASSWORD=
|
||||
|
||||
JWT_SECRET=your-secret-key-here
|
||||
JWT_EXPIRY_HOURS=24
|
||||
REFRESH_SECRET=your-refresh-secret-key-here
|
||||
JWT_EXPIRY_HOURS=1
|
||||
|
||||
ADMIN_USERNAME=admin
|
||||
ADMIN_PASSWORD=admin1234
|
||||
ADMIN_PASSWORD=admin1234
|
||||
|
||||
BASE_URL=http://localhost:8080
|
||||
GAME_DIR=/data/game
|
||||
|
||||
# Chain integration
|
||||
CHAIN_NODE_URL=http://localhost:8545
|
||||
CHAIN_ID=tolchain-dev
|
||||
# 운영자 지갑 개인키 (hex, 비워두면 mint/reward 불가)
|
||||
OPERATOR_KEY_HEX=
|
||||
# AES-256 암호화 키 - 반드시 64자 hex (32 bytes) 설정 필요
|
||||
WALLET_ENCRYPTION_KEY=
|
||||
|
||||
# 게임 서버 → API 서버 내부 통신용 API 키 (비워두면 /api/internal/* 비활성화)
|
||||
INTERNAL_API_KEY=
|
||||
|
||||
Reference in New Issue
Block a user