로그인 및 비밀번호 재설정 기능을 완전히 재구현했습니다. 다음과 같은 개선사항이 적용되었습니다:
- ✅ 상세한 로깅 시스템: 모든 인증 단계에서 디버그 정보 출력
- ✅ 직접 Supabase 호출 테스트: AuthRepository와 별도로 직접 API 호출 검증
- ✅ 프로필 자동 생성 폴백: 프로필이 없어도 기본 UserModel 반환
- ✅ 개선된 에러 처리: 구체적인 에러 메시지와 사용자 친화적 피드백
- ✅ 비밀번호 재설정 강화: 이메일 검증 및 상세한 피드백
앱에 전용 디버그 화면을 추가했습니다:
- 경로:
/debug/auth - 접근: 로그인 화면 하단의 "로그인 문제 디버그" 버튼 클릭
# 패키지 설치 (이미 완료됨)
flutter pub get
# 코드 생성 (이미 완료됨)
flutter packages pub run build_runner build --delete-conflicting-outputs
# 앱 실행 (안드로이드 에뮬레이터)
flutter run- 디버그 화면에서 "연결 테스트" 버튼 클릭
- Supabase 연결 상태 확인
- 프로필 테이블 접근 가능 여부 확인
- 이메일과 비밀번호 입력
- "로그인" 버튼 클릭
- 로그 창에서 상세한 진행 상황 확인
- 세션 생성 여부
- 프로필 조회 성공 여부
- 에러 메시지 상세 정보
- 새 이메일과 비밀번호 입력
- "회원가입" 버튼 클릭
- 이메일 확인 필요 여부 확인
- 이메일만 입력
- "비번 재설정" 버튼 클릭
- 이메일 전송 성공 여부 확인
- Supabase 프로젝트 URL 및 ANON KEY 설정 (.env 파일)
- Auth 설정에서 이메일 확인 비활성화 (개발 중)
- profiles 테이블 생성 및 RLS 정책 설정
- 트리거 설정 (자동 프로필 생성)
- 디버그 화면에서 연결 테스트 실행
- 콘솔 로그 확인 (flutter logs)
- Supabase Dashboard에서 Auth 로그 확인
- profiles 테이블 데이터 확인
- 이메일이 등록된 계정인지 확인
- Supabase Auth 설정에서 이메일 템플릿 확인
- 스팸 폴더 확인
[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 logsflutter clean
flutter pub get
flutter run앱 실행 중:
r- Hot reloadR- Hot restartq- 종료
- 디버그 화면에서 새 이메일로 회원가입
- 같은 이메일로 로그인 시도
- 프로필 자동 생성 확인
- 등록된 이메일로 로그인
- 세션 유지 확인
- 로그아웃 후 재로그인
- 등록된 이메일로 재설정 요청
- 이메일 수신 확인
- 새 비밀번호로 로그인
- auth_repository.dart: 상세한 로깅 및 에러 처리 추가
- login_screen.dart: 직접 Supabase 호출 테스트 추가
- auth_debug_screen.dart: 전용 디버그 화면 생성
- router_provider.dart: 디버그 라우트 추가
- 앱을 실행하고 디버그 화면에서 테스트
- 로그를 확인하여 정확한 문제 파악
- 필요시 Supabase Dashboard에서 설정 조정
- 모든 기능이 정상 작동하면 디버그 버튼 숨기기 (login_screen.dart에서
if (true)를if (false)로 변경)
문제가 지속되면 다음 정보와 함께 보고해주세요:
- 디버그 화면의 로그 전체
- flutter logs 출력
- Supabase Dashboard의 Auth 로그