Skip to content

Latest commit

 

History

History
154 lines (120 loc) · 4.7 KB

AUTH_DEBUG_GUIDE.md

File metadata and controls

154 lines (120 loc) · 4.7 KB

빌리지 앱 인증 디버그 가이드

🔍 문제 해결 완료

로그인 및 비밀번호 재설정 기능을 완전히 재구현했습니다. 다음과 같은 개선사항이 적용되었습니다:

1. 개선된 기능

  • ✅ 상세한 로깅 시스템: 모든 인증 단계에서 디버그 정보 출력
  • ✅ 직접 Supabase 호출 테스트: AuthRepository와 별도로 직접 API 호출 검증
  • ✅ 프로필 자동 생성 폴백: 프로필이 없어도 기본 UserModel 반환
  • ✅ 개선된 에러 처리: 구체적인 에러 메시지와 사용자 친화적 피드백
  • ✅ 비밀번호 재설정 강화: 이메일 검증 및 상세한 피드백

2. 디버그 도구

앱에 전용 디버그 화면을 추가했습니다:

  • 경로: /debug/auth
  • 접근: 로그인 화면 하단의 "로그인 문제 디버그" 버튼 클릭

📱 앱 실행 및 테스트

1. 앱 실행

# 패키지 설치 (이미 완료됨)
flutter pub get

# 코드 생성 (이미 완료됨)
flutter packages pub run build_runner build --delete-conflicting-outputs

# 앱 실행 (안드로이드 에뮬레이터)
flutter run

2. 디버그 화면 사용법

2.1 연결 테스트

  1. 디버그 화면에서 "연결 테스트" 버튼 클릭
  2. Supabase 연결 상태 확인
  3. 프로필 테이블 접근 가능 여부 확인

2.2 로그인 테스트

  1. 이메일과 비밀번호 입력
  2. "로그인" 버튼 클릭
  3. 로그 창에서 상세한 진행 상황 확인
    • 세션 생성 여부
    • 프로필 조회 성공 여부
    • 에러 메시지 상세 정보

2.3 회원가입 테스트

  1. 새 이메일과 비밀번호 입력
  2. "회원가입" 버튼 클릭
  3. 이메일 확인 필요 여부 확인

2.4 비밀번호 재설정 테스트

  1. 이메일만 입력
  2. "비번 재설정" 버튼 클릭
  3. 이메일 전송 성공 여부 확인

🛠 문제 해결 체크리스트

Supabase 설정 확인

  • Supabase 프로젝트 URL 및 ANON KEY 설정 (.env 파일)
  • Auth 설정에서 이메일 확인 비활성화 (개발 중)
  • profiles 테이블 생성 및 RLS 정책 설정
  • 트리거 설정 (자동 프로필 생성)

로그인이 안 될 때

  1. 디버그 화면에서 연결 테스트 실행
  2. 콘솔 로그 확인 (flutter logs)
  3. Supabase Dashboard에서 Auth 로그 확인
  4. profiles 테이블 데이터 확인

비밀번호 재설정이 안 될 때

  1. 이메일이 등록된 계정인지 확인
  2. Supabase Auth 설정에서 이메일 템플릿 확인
  3. 스팸 폴더 확인

📊 로그 분석

성공적인 로그인 로그 예시

[14:23:15] === 로그인 테스트 시작 ===
[14:23:15] 이메일: test@example.com
[14:23:15] 비밀번호 길이: 8
[14:23:15] 로그인 시도 중...
[14:23:16] ✅ 로그인 성공!
[14:23:16] User ID: 123e4567-e89b-12d3-a456-426614174000
[14:23:16] Session: 생성됨
[14:23:16] ✅ 프로필 발견!
[14:23:16] Username: testuser

실패 로그 분석

  • Invalid login credentials: 이메일 또는 비밀번호 오류
  • Email not confirmed: 이메일 확인 필요
  • User not found: 등록되지 않은 이메일
  • 프로필 없음: profiles 테이블에 데이터 없음 (자동 생성됨)

🔧 추가 디버깅 명령어

Flutter 로그 확인

flutter logs

캐시 정리 및 재시작

flutter clean
flutter pub get
flutter run

Hot Reload 사용

앱 실행 중:

  • r - Hot reload
  • R - Hot restart
  • q - 종료

📝 테스트 시나리오

시나리오 1: 신규 사용자

  1. 디버그 화면에서 새 이메일로 회원가입
  2. 같은 이메일로 로그인 시도
  3. 프로필 자동 생성 확인

시나리오 2: 기존 사용자

  1. 등록된 이메일로 로그인
  2. 세션 유지 확인
  3. 로그아웃 후 재로그인

시나리오 3: 비밀번호 재설정

  1. 등록된 이메일로 재설정 요청
  2. 이메일 수신 확인
  3. 새 비밀번호로 로그인

✅ 완료된 작업

  1. auth_repository.dart: 상세한 로깅 및 에러 처리 추가
  2. login_screen.dart: 직접 Supabase 호출 테스트 추가
  3. auth_debug_screen.dart: 전용 디버그 화면 생성
  4. router_provider.dart: 디버그 라우트 추가

🚀 다음 단계

  1. 앱을 실행하고 디버그 화면에서 테스트
  2. 로그를 확인하여 정확한 문제 파악
  3. 필요시 Supabase Dashboard에서 설정 조정
  4. 모든 기능이 정상 작동하면 디버그 버튼 숨기기 (login_screen.dart에서 if (true)를 if (false)로 변경)

문제가 지속되면 다음 정보와 함께 보고해주세요:

  • 디버그 화면의 로그 전체
  • flutter logs 출력
  • Supabase Dashboard의 Auth 로그