# 250817_happybell80_OAuth권한최소화및프로필버그수정 ## 오전 1시 23분 ### Google OAuth 과도한 권한 문제 해결 #### 문제 상황 - 사용자가 Google OAuth 로그인 시 Gmail 전체 권한 요청 화면이 나타남 - `gmail.modify` 스코프가 요청되어 사용자가 거부 (access_denied) - 단순 로그인에 이메일 읽기/쓰기/삭제 권한은 과도함 #### 원인 분석 1. auth-server의 `app/providers/gmail.py`에서 과도한 스코프 요청 ```python SCOPES = [ "openid", "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/gmail.modify", # 문제! ] ``` 2. `gmail.modify`는 사용자의 모든 이메일에 대한 읽기/쓰기/삭제 권한 3. 로그인 목적에는 완전히 불필요한 권한 #### 해결 과정 ##### 1차 시도 - 코드 수정 - auth-server의 스코프를 최소 권한으로 변경 ```python SCOPES = [ "openid", "email", # 이메일 주소만 확인 "profile" # 이름과 프로필 사진 ] ``` - JWT 토큰에 profile picture 추가 - frontend-customer에서 프로필 사진 표시 지원 ##### 2차 시도 - 서버 반영 문제 해결 - **문제**: 코드는 수정했지만 여전히 gmail.modify 권한 요청 - **원인**: Gitea Actions가 코드만 업데이트하고 컨테이너 재빌드 안 함 - **해결**: 51123 서버에서 수동 재배포 ```bash cd /home/admin/auth-server git pull docker-compose down docker-compose up -d --build --force-recreate ``` ##### 3차 시도 - Google 캐시 초기화 - **문제**: "이미 일부 액세스 권한이 있음" 메시지 - **원인**: Google이 이전 gmail.modify 권한을 기억 - **해결**: 1. https://myaccount.google.com/permissions 에서 앱 권한 삭제 2. 브라우저 시크릿 모드로 재시도 #### 결과 - ✅ 최소 권한(openid, email, profile)만 요청 - ✅ 사용자 신뢰도 향상 - ✅ Google 프로필 사진 표시 기능 추가 ### 프로필 클릭 시 로그아웃 버그 수정 #### 문제 상황 - `/game` 페이지에서 프로필 아이콘 클릭 시 즉시 로그아웃됨 #### 원인 분석 - `game-layout.tsx`의 126-129번 줄에서 프로필 버튼에 `logout()` 함수 연결 ```tsx