docs: OAuth 권한 분리 전략 추가
- Google OAuth 권한 과다 요청 문제점 추가 - 단계별 권한 요청 전략 제안 (기본 로그인 vs 스킬별 권한) - 구현 방안 및 Phase 4 로드맵 추가
This commit is contained in:
parent
7f6b90a1b9
commit
1699e852b4
@ -106,7 +106,12 @@ collection_name = f"{robing_id}_{user_id}_episodic"
|
||||
- 새 사용자 추가 시 코드 수정 필요
|
||||
- 확장성 없음
|
||||
|
||||
### 5. 변수명 불일치 혼란 🔄
|
||||
### 5. OAuth 권한 과다 요청 🔐
|
||||
- 회원가입/로그인 시 Gmail 읽기/쓰기 권한(`gmail.modify`)까지 요청
|
||||
- 복잡한 동의 과정으로 사용자 이탈 가능성 높음
|
||||
- 이메일 기능 미사용자에게도 과도한 권한 요청
|
||||
|
||||
### 6. 변수명 불일치 혼란 🔄
|
||||
- user_id vs username vs email 혼용
|
||||
- JWT의 'sub'가 username인지 user_id인지 불명확
|
||||
|
||||
@ -168,6 +173,23 @@ X-Username: happybell80 // 명확한 이름
|
||||
대안: 'jwt_token', 'access_token', 'robing_token'
|
||||
```
|
||||
|
||||
### 6. OAuth 권한 분리 전략
|
||||
```python
|
||||
# 옵션 A: 단계별 권한 요청 (추천) ✅
|
||||
기본 로그인: openid, userinfo.email, userinfo.profile
|
||||
이메일 스킬: gmail.modify (별도 연결)
|
||||
캘린더 스킬: calendar.events (별도 연결)
|
||||
|
||||
# 옵션 B: 일괄 권한 요청 (현재)
|
||||
모든 권한을 한 번에 요청 (사용자 이탈 높음)
|
||||
```
|
||||
|
||||
**구현 방안:**
|
||||
- `/auth/gmail/login` - 기본 프로필 권한만 (간단한 로그인)
|
||||
- `/auth/gmail/connect-email` - Gmail 권한 추가 (이메일 아이템 사용 시)
|
||||
- DB에 권한 레벨 저장: `oauth_scopes` 필드 추가
|
||||
- Frontend에서 권한 상태 표시 및 추가 연결 버튼 제공
|
||||
|
||||
## 즉시 수정 필요 (Critical)
|
||||
|
||||
### 1. Frontend (robing-api.ts)
|
||||
@ -212,6 +234,12 @@ collection_name = f"{robing_id}_{username}_episodic"
|
||||
2. 토큰 갱신 로직 구현
|
||||
3. 권한 체계 구현
|
||||
|
||||
### Phase 4: OAuth 권한 분리 (1주)
|
||||
1. 기본 로그인용 엔드포인트 구현 (최소 권한)
|
||||
2. 스킬별 추가 권한 연결 엔드포인트 구현
|
||||
3. DB에 사용자별 권한 상태 저장
|
||||
4. Frontend에 권한 관리 UI 추가
|
||||
|
||||
## 참고 사항
|
||||
|
||||
- **JWT Secret**: 모든 서비스가 같은 키 공유 필요
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user