docs: Gmail 토큰 timezone 버그 수정 내용 추가
- auth-server의 datetime.now() → datetime.now(timezone.utc) 변경 - 토큰 만료 시간이 정확히 UTC로 저장되도록 수정 - gmail_refresh.py와 gmail_passport.py 수정 내용 문서화
This commit is contained in:
parent
1d4fbf68c2
commit
46c724912d
@ -342,4 +342,53 @@ FROM gmail_tokens;
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 14. 버그 수정 완료 (2025-08-24 로컬 개발자)
|
||||||
|
|
||||||
|
### 14.1 수정 내용
|
||||||
|
**Timezone 버그 수정** - Gmail 토큰 만료 시간이 UTC가 아닌 로컬 시간으로 저장되는 문제 해결
|
||||||
|
|
||||||
|
#### 수정 파일 1: auth-server/app/api/gmail_refresh.py
|
||||||
|
```python
|
||||||
|
# Line 9: timezone import 추가
|
||||||
|
from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
|
# Line 66: 토큰 유효성 체크 시 UTC 사용
|
||||||
|
remaining = check_expiry - datetime.now(timezone.utc).timestamp()
|
||||||
|
|
||||||
|
# Line 131-132: 토큰 갱신 시 UTC 기준으로 만료 시간 계산
|
||||||
|
new_expires_at = datetime.now(timezone.utc).timestamp() + expires_in
|
||||||
|
new_expiry = datetime.now(timezone.utc) + timedelta(seconds=expires_in)
|
||||||
|
|
||||||
|
# Line 247: 토큰 상태 확인 시 UTC 사용
|
||||||
|
remaining_seconds = check_expiry - datetime.now(timezone.utc).timestamp()
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 수정 파일 2: auth-server/app/providers/gmail_passport.py
|
||||||
|
```python
|
||||||
|
# Line 14: timezone import 추가
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
|
# Line 194: OAuth 콜백 처리 시 UTC 사용
|
||||||
|
datetime.now(timezone.utc).timestamp() + token_data_raw.get('expires_in', 3600)
|
||||||
|
|
||||||
|
# Line 199-200: created_at, updated_at UTC 사용
|
||||||
|
datetime.now(timezone.utc),
|
||||||
|
datetime.now(timezone.utc)
|
||||||
|
|
||||||
|
# Line 283, 306: 패스포트 활성화/비활성화 시 UTC 사용
|
||||||
|
""", user_uuid, datetime.now(timezone.utc))
|
||||||
|
```
|
||||||
|
|
||||||
|
### 14.2 수정 효과
|
||||||
|
- 토큰 만료 시간이 정확히 UTC로 저장됨
|
||||||
|
- 토큰 갱신 API가 올바른 시간 기준으로 작동
|
||||||
|
- 자동 갱신 시 만료 판단이 정확해짐
|
||||||
|
|
||||||
|
### 14.3 다음 단계 (서버 관리자)
|
||||||
|
1. auth-server 재배포
|
||||||
|
2. 기존 만료된 토큰 수동 갱신 또는 재인증
|
||||||
|
3. 자동 갱신 크론잡 설정 (선택사항)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
**문서 끝**
|
**문서 끝**
|
||||||
Loading…
x
Reference in New Issue
Block a user