docs: Gateway UUID 조회 문제 추가 - get_robeing_info() 함수가 UUID 처리 불가
This commit is contained in:
parent
33ac91bc9f
commit
861b9d4ae9
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## 작성일: 2025-08-27
|
## 작성일: 2025-08-27
|
||||||
## 작성자: 51123 서버 관리자
|
## 작성자: 51123 서버 관리자
|
||||||
## 상태: ✅ RESOLVED - 2025-08-27 16:30 해결 완료
|
## 상태: ⚠️ PARTIAL - 2025-08-27 16:45 Gateway 쿼리 문제 발견
|
||||||
## 영향 범위: 전체 시스템 (Auth, Gateway, Frontend, rb8001, DB)
|
## 영향 범위: 전체 시스템 (Auth, Gateway, Frontend, rb8001, DB)
|
||||||
## 위험 수준: ~~매우 높음~~ → 해결됨
|
## 위험 수준: ~~매우 높음~~ → 해결됨
|
||||||
|
|
||||||
@ -214,19 +214,26 @@ SELECT id, username FROM users WHERE username='happybell80';
|
|||||||
|
|
||||||
## 8. 결론
|
## 8. 결론
|
||||||
|
|
||||||
**✅ UUID vs username 혼용 문제 해결 완료**
|
**⚠️ UUID vs username 혼용 문제 부분 해결**
|
||||||
|
|
||||||
### 적용된 해결책:
|
### 적용된 해결책:
|
||||||
1. auth-server: JWT `sub`에 UUID 사용 ✅
|
1. auth-server: JWT `sub`에 UUID 사용 ✅
|
||||||
2. Frontend: localStorage에 UUID 저장 ✅
|
2. Frontend: localStorage에 UUID 저장 ✅
|
||||||
3. rb8001: UUID와 username 구분 처리 ✅
|
3. rb8001: UUID와 username 구분 처리 ✅
|
||||||
4. Gateway: UUID 기반 인증 정상 작동 ✅
|
4. Gateway: UUID 기반 인증 ✅, DB 조회 ❌
|
||||||
|
|
||||||
### 추가 발견 및 해결:
|
### 추가 발견 및 해결:
|
||||||
- workspace_members.robeing_url 불일치 문제 해결
|
- 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)
|
### Phase 1: auth-server JWT 수정 (15:45)
|
||||||
- Line 209: `"sub": username` → `"sub": str(user.id)`
|
- Line 209: `"sub": username` → `"sub": str(user.id)`
|
||||||
@ -249,6 +256,17 @@ SELECT id, username FROM users WHERE username='happybell80';
|
|||||||
- Gateway 인증: UUID 사용 확인 ✅
|
- Gateway 인증: UUID 사용 확인 ✅
|
||||||
- Frontend: 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*
|
*작성 완료: 2025-08-27 15:45*
|
||||||
Loading…
x
Reference in New Issue
Block a user