Skip to content

[FEAT] 카카오 간편 로그인 구현 #181

Description

@deli-minju

🌿 브랜치 타입

feat

📝 작업 요약

  • 카카오 REST API를 이용한 소셜 로그인 및 회원가입 기능을 구현합니다.
  • 카카오 OAuth 처리는 백엔드에서 수행하고, 로그인 완료 후 기존 GACHI access/refresh JWT를 발급합니다. 최초 로그인 사용자는 카카오 이메일·닉네임을 기반으로 서비스 약관, 언어, 알림 설정만 입력받아 가입 처리합니다. 별도의 아이디·비밀번호·전화번호 입력은 요구하지 않으며, 전화번호는 카카오에서 제공된 경우에만 선택적으로 저장합니다.
  • 테스트 앱 GACHI-TEST는 카카오 로그인과 이메일·닉네임 필수 동의가 활성화되어 있으며, Redirect URI와 연결 해제 웹훅은 아직 등록되지 않은 상태입니다.

✅ 작업 항목

  • 카카오 REST API 설정 및 환경변수 추가
  • OAuth state 검증과 인가 코드·토큰 교환 구현
  • 카카오 사용자 정보 조회 구현
  • 카카오 계정 식별용 소셜 계정 테이블 추가
  • 카카오 로그인 및 최초 회원가입 API 구현
  • 동일 이메일의 기존 회원 계정 연결 정책 적용
  • 로그인 성공 시 기존 GACHI JWT 발급
  • 카카오 연결 해제 웹훅 및 회원 탈퇴 연동
  • 예외 처리와 통합 테스트 추가
  • 환경변수 및 API 문서 작성

🚩 완료 조건

  • 기존 카카오 회원은 카카오 로그인 후 GACHI JWT를 발급받을 수 있다.
  • 최초 카카오 회원은 추가 정보 입력 후 가입할 수 있다.
  • 기존 이메일 계정은 본인 인증 없이 자동 연결되지 않는다.
  • 위조된 state와 만료·재사용된 인증 요청이 거부된다.
  • Client Secret과 카카오 토큰이 코드, 응답 및 로그에 노출되지 않는다.
  • 카카오 연결 해제 및 GACHI 회원 탈퇴가 정상 처리된다.
  • 기존 인증 기능을 포함한 전체 테스트와 spotlessCheck가 통과한다.
  • 최초 카카오 회원은 별도의 아이디·비밀번호·전화번호 입력 없이 가입할 수 있다.
  • 카카오에서 전화번호를 제공하지 않아도 가입할 수 있다.
  • 동일 이메일의 기존 계정은 GACHI 로그인 인증 후에만 명시적으로 연결할 수 있다.
  • 카카오 전용 회원이 연결을 해제하면 회원 탈퇴 및 활성 refresh token 철회가 처리된다.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions