From 861b9d4ae9f7a9ee3cf5567f0a3fc483ff98a4e6 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Wed, 27 Aug 2025 16:45:39 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20Gateway=20UUID=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=EC=B6=94=EA=B0=80=20-=20get=5Frobeing=5Fi?= =?UTF-8?q?nfo()=20=ED=95=A8=EC=88=98=EA=B0=80=20UUID=20=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=20=EB=B6=88=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../250827_UUID_username_혼용_CRITICAL.md | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/troubleshooting/250827_UUID_username_혼용_CRITICAL.md b/troubleshooting/250827_UUID_username_혼용_CRITICAL.md index ca918a6..c84a367 100644 --- a/troubleshooting/250827_UUID_username_혼용_CRITICAL.md +++ b/troubleshooting/250827_UUID_username_혼용_CRITICAL.md @@ -2,7 +2,7 @@ ## 작성일: 2025-08-27 ## 작성자: 51123 서버 관리자 -## 상태: ✅ RESOLVED - 2025-08-27 16:30 해결 완료 +## 상태: ⚠️ PARTIAL - 2025-08-27 16:45 Gateway 쿼리 문제 발견 ## 영향 범위: 전체 시스템 (Auth, Gateway, Frontend, rb8001, DB) ## 위험 수준: ~~매우 높음~~ → 해결됨 @@ -214,19 +214,26 @@ SELECT id, username FROM users WHERE username='happybell80'; ## 8. 결론 -**✅ UUID vs username 혼용 문제 해결 완료** +**⚠️ UUID vs username 혼용 문제 부분 해결** ### 적용된 해결책: 1. auth-server: JWT `sub`에 UUID 사용 ✅ 2. Frontend: localStorage에 UUID 저장 ✅ 3. rb8001: UUID와 username 구분 처리 ✅ -4. Gateway: UUID 기반 인증 정상 작동 ✅ +4. Gateway: UUID 기반 인증 ✅, DB 조회 ❌ ### 추가 발견 및 해결: - workspace_members.robeing_url 불일치 문제 해결 -- happybell80 → rb10508_micro로 정상 라우팅 +- ~~happybell80 → rb10508_micro로 정상 라우팅~~ -## 9. 해결 과정 (2025-08-27 15:45 ~ 16:30) +### 🔴 잔여 문제 (16:45 발견): +- Gateway `get_robeing_info()` 함수가 UUID를 username으로 조회 +- database.py:108 `WHERE u.username = :username` - UUID 처리 불가 +- 결과: "No active workspace found" → 기본 10508 사용 + +## 9. 해결 과정 (2025-08-27 15:45 ~ 16:45) + +### 완료된 작업 ### Phase 1: auth-server JWT 수정 (15:45) - Line 209: `"sub": username` → `"sub": str(user.id)` @@ -249,6 +256,17 @@ SELECT id, username FROM users WHERE username='happybell80'; - Gateway 인증: UUID 사용 확인 ✅ - Frontend: UUID 전송 확인 ✅ +### 미해결 문제 (16:45) +- Gateway `get_robeing_info(username: str)` 함수 + - JWT sub에서 UUID 받음: `1e16e9d5-59f3-54da-a661-8abeabff4230` + - DB 쿼리: `WHERE u.username = :username` (UUID로 조회 불가) + - 결과: workspace 찾기 실패 → default robeing(10508) 사용 + +### 해결 방안 +1. database.py 수정: `WHERE u.username = :username OR u.id::text = :username` +2. 또는 Gateway가 JWT payload의 username 사용 +3. 또는 별도 함수 `get_robeing_info_by_uuid()` 추가 + --- *작성 완료: 2025-08-27 15:45* \ No newline at end of file