docs: 문서 톤 객관적으로 수정 및 해결 상태 업데이트
- 비난조 표현을 객관적 서술로 변경 - 해결된 이슈 상태 명확히 표시 - timezone 버그 수정 완료 상태 반영 - 긴급도 표현 완화
This commit is contained in:
parent
66e6acb1f3
commit
20bc99d8e5
@ -116,29 +116,19 @@ NameError: name 'datetime' is not defined
|
||||
|
||||
---
|
||||
|
||||
## 5. 현재 미해결 문제
|
||||
## 5. 이슈 현황
|
||||
|
||||
### 5.1 Gmail 토큰 자동 갱신 실패
|
||||
**근본 원인**: auth-server의 timezone 버그
|
||||
### 5.1 Gmail 토큰 자동 갱신 - ✅ 부분 해결 (2025-08-24)
|
||||
**Timezone 버그**:
|
||||
- 파일: `/home/admin/auth-server/app/api/gmail_refresh.py:132`
|
||||
- 문제: `datetime.now()`가 timezone-naive datetime 생성
|
||||
- 영향: DB에 UTC로 저장되어 8시간 전 시간으로 기록 (항상 만료 상태)
|
||||
- 수정 완료: `datetime.now()` → `datetime.now(timezone.utc)` (섹션 14 참조)
|
||||
- 상태: 로컬 개발자가 수정 완료, 배포 대기
|
||||
|
||||
**필요 조치**:
|
||||
```python
|
||||
# 현재 (버그)
|
||||
new_expiry = datetime.now() + timedelta(seconds=expires_in)
|
||||
|
||||
# 수정 필요
|
||||
from datetime import timezone
|
||||
new_expiry = datetime.now(timezone.utc) + timedelta(seconds=expires_in)
|
||||
```
|
||||
|
||||
### 5.2 자동 갱신 메커니즘 부재
|
||||
- **근본 문제**: skill-email과 rb8001이 Gmail API 호출 시 토큰 만료 체크 안함
|
||||
- **정상 패턴**: API 호출 전 토큰 만료 확인 → 만료 시 refresh_token으로 자동 갱신
|
||||
- **현재 구현**: 만료된 토큰 그대로 사용 → 에러 발생
|
||||
- **필요 조치**: Gmail API 호출 전 토큰 만료 체크 및 갱신 로직 추가
|
||||
### 5.2 자동 갱신 메커니즘 - 📋 개선 예정
|
||||
- **현재 상태**: skill-email과 rb8001이 Gmail API 호출 시 토큰 상태 직접 확인하지 않음
|
||||
- **일반적 구현**: API 호출 전 토큰 만료 확인 후 필요시 refresh_token으로 갱신
|
||||
- **현재 동작**: 토큰 그대로 사용, 만료 시 에러 발생
|
||||
- **개선 방향**: Gmail API 호출 전 토큰 체크 로직 추가 검토
|
||||
|
||||
---
|
||||
|
||||
@ -234,12 +224,12 @@ docker exec robeing-gateway tail -f /var/log/cron.log
|
||||
- auth_db → main_db 마이그레이션 완료
|
||||
- 서비스 재시작 완료
|
||||
|
||||
### 현재 문제 상태
|
||||
- **모든 사용자 토큰 만료**:
|
||||
- 0914eagle: 1일 8시간 전 만료
|
||||
- cdctfm: 1일 15시간 전 만료
|
||||
- happybell80: 1일 15시간 전 만료
|
||||
- **자동 갱신 실패**: refresh_token 존재하나 timezone 버그로 갱신 불가
|
||||
### 토큰 상태 (2025-08-25 시점)
|
||||
- **토큰 만료 현황**:
|
||||
- 0914eagle: 만료됨
|
||||
- cdctfm: 만료됨
|
||||
- happybell80: 만료됨
|
||||
- **갱신 상태**: refresh_token 존재, timezone 수정 후 갱신 가능
|
||||
|
||||
### 긴급도
|
||||
- **높음**: 매일 오전 9시 사용자 영향
|
||||
@ -305,45 +295,34 @@ FROM gmail_tokens;
|
||||
3. **만료 상태**: 모든 토큰 24시간 이상 만료
|
||||
4. **자동 갱신 실패**: refresh_token 있으나 자동 갱신 미작동
|
||||
|
||||
### 결론
|
||||
- 문서의 "OAuth 토큰 재발급 필요" 진단 **정확함**
|
||||
- refresh_token이 존재하나 자동 갱신 메커니즘 작동 안함
|
||||
- 사용자가 프론트엔드에서 수동으로 Gmail 재인증 필요
|
||||
### 분석 결과
|
||||
- OAuth 토큰 재발급 또는 갱신 필요
|
||||
- refresh_token 존재, 갱신 API 활용 가능
|
||||
- 프론트엔드에서 재인증 옵션 제공 중
|
||||
|
||||
---
|
||||
|
||||
## 13. 필요한 조치사항 (로컬 개발자 액션)
|
||||
## 13. 조치사항 요약
|
||||
|
||||
### 13.1 즉시 수정 필요
|
||||
1. **auth-server timezone 버그 수정**
|
||||
### 13.1 완료된 수정 (2025-08-24)
|
||||
1. **auth-server timezone 수정**
|
||||
- 파일: `/home/admin/auth-server/app/api/gmail_refresh.py`
|
||||
- 라인: 132
|
||||
- 수정 코드:
|
||||
```python
|
||||
# 현재 (버그)
|
||||
new_expiry = datetime.now() + timedelta(seconds=expires_in)
|
||||
- 수정 내용: `datetime.now()` → `datetime.now(timezone.utc)`
|
||||
- 상태: ✅ 로컬 수정 완료, 배포 대기
|
||||
|
||||
# 수정안
|
||||
from datetime import timezone
|
||||
new_expiry = datetime.now(timezone.utc) + timedelta(seconds=expires_in)
|
||||
```
|
||||
|
||||
2. **API 호출 시점 자동 갱신 구현**
|
||||
### 13.2 향후 개선 고려사항
|
||||
1. **API 호출 시점 자동 갱신**
|
||||
```python
|
||||
# skill-email과 rb8001에 추가 필요
|
||||
# 토큰 체크 로직 예시
|
||||
if token.expiry < datetime.now():
|
||||
token = refresh_gmail_token(user_id)
|
||||
```
|
||||
|
||||
### 13.2 영향받는 서비스
|
||||
### 13.3 영향받는 서비스
|
||||
- rb8001 일일 요약 (매일 오전 9시)
|
||||
- skill-email 이메일 조회 기능
|
||||
- 프론트엔드 Gmail 아이템 기능
|
||||
|
||||
### 13.3 긴급도
|
||||
- **매우 높음**: 모든 Gmail 관련 기능 작동 불가
|
||||
- 즉시 수정 및 배포 필요
|
||||
|
||||
---
|
||||
|
||||
## 14. 버그 수정 완료 (2025-08-24 로컬 개발자)
|
||||
@ -442,16 +421,16 @@ FROM gmail_tokens;
|
||||
|
||||
### 15.5 수동 갱신 실행 (2025-08-25 00:55)
|
||||
- 0914eagle, cdctfm OAuth client 정보 수정 후 수동 갱신 완료
|
||||
- 모든 사용자 토큰 현재 유효 상태 (1시간)
|
||||
- **중요**: API 호출 시점 자동 갱신 로직 없어 임시로 수동 갱신 실행
|
||||
- **정상 구현**: Gmail API 호출 전 토큰 체크 및 자동 갱신 필요
|
||||
- 모든 사용자 토큰 유효 상태로 변경 (1시간)
|
||||
- 현재 수동 갱신으로 운영 중
|
||||
- 향후 자동 갱신 구현 시 안정성 향상 예상
|
||||
|
||||
---
|
||||
|
||||
## 16. 자동 갱신 메커니즘 부재 상세 분석 (2025-08-24 로컬 개발자)
|
||||
|
||||
### 16.1 코드 분석 결과
|
||||
**검증 완료**: 섹션 5.2의 진단이 정확함
|
||||
섹션 5.2의 내용을 코드로 확인
|
||||
|
||||
#### skill-email 현재 구현
|
||||
```python
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user