From 52ea633cdb0c2dea0fe58a9b56d9aa1f14033012 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Mon, 25 Aug 2025 00:29:10 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20rb8001=20=ED=81=AC=EB=A1=A0=EC=9E=A1=20?= =?UTF-8?q?=ED=8A=B8=EB=9F=AC=EB=B8=94=EC=8A=88=ED=8C=85=20=EB=AC=B8?= =?UTF-8?q?=EC=84=9C=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EB=B0=8F=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 루트 디렉토리의 트러블슈팅 문서들을 troubleshooting 폴더로 이동 - rb8001 일일 요약 크론잡 실패 분석 문서에 OAuth 토큰 검증 결과 추가 - 토큰 만료 상태 상세 확인 (모든 토큰 24시간 이상 만료) - auth-server 정상 작동 확인 - 자동 갱신 실패 원인 분석 섹션 추가 --- ...50824_rb8001_daily_summary_cron_failure.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) 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