diff --git a/troubleshooting/250824_rb8001_daily_summary_cron_failure.md b/troubleshooting/250824_rb8001_daily_summary_cron_failure.md index f0dc58f..5ed9ae4 100644 --- a/troubleshooting/250824_rb8001_daily_summary_cron_failure.md +++ b/troubleshooting/250824_rb8001_daily_summary_cron_failure.md @@ -264,4 +264,56 @@ docker exec robeing-gateway tail -f /var/log/cron.log --- +## 11. OAuth 토큰 상태 검증 (2025-08-25 00:30) + +### DB 검증 결과 +```sql +-- 토큰 데이터 확인 +SELECT username, + token_data IS NOT NULL as has_token_data, + access_token IS NOT NULL as has_access, + refresh_token IS NOT NULL as has_refresh, + expiry +FROM gmail_tokens; +``` + +**결과**: +| username | has_token_data | has_access | has_refresh | expiry | +|----------|---------------|------------|-------------|--------| +| 0914eagle | false | true | true | 2025-08-23 16:04:15 | +| cdctfm | false | true | true | 2025-08-23 08:52:13 | +| happybell80 | false | true | true | 2025-08-23 08:52:11 | + +### 토큰 만료 상태 +```sql +-- 만료 시간 검증 +SELECT username, + CASE WHEN expiry < NOW() THEN '만료됨' ELSE '유효함' END as status, + AGE(NOW(), expiry) as expired_since +FROM gmail_tokens; +``` + +**결과**: +- **0914eagle**: 만료됨 (1일 8시간 전) +- **cdctfm**: 만료됨 (1일 15시간 전) +- **happybell80**: 만료됨 (1일 15시간 전) + +### auth-server 상태 +- **컨테이너**: 정상 작동 중 (32시간 운영) +- **헬스체크**: `/health` 엔드포인트 정상 응답 +- **상태**: healthy + +### 분석 결과 +1. **token_data 필드**: 모두 NULL (JSONB 필드 미사용) +2. **access_token/refresh_token**: 별도 컬럼에 존재 +3. **만료 상태**: 모든 토큰 24시간 이상 만료 +4. **자동 갱신 실패**: refresh_token 있으나 자동 갱신 미작동 + +### 결론 +- 문서의 "OAuth 토큰 재발급 필요" 진단 **정확함** +- refresh_token이 존재하나 자동 갱신 메커니즘 작동 안함 +- 사용자가 프론트엔드에서 수동으로 Gmail 재인증 필요 + +--- + **문서 끝** \ No newline at end of file