Skip to content

사용자가 소셜 로그인으로 인증하고 서비스를 이용할 수 있다. #37

@mindaaaa

Description

@mindaaaa

기능 설명

사용자는 Google / Naver / Kakao 소셜 로그인을 통해 서비스에 가입/로그인할 수 있다.
소셜 로그인 성공 시 서버는 사용자 정보를 확인해 기존 사용자면 로그인, 없으면 신규 사용자 생성을 수행한다.

인증은 JWT(Access Token / Refresh Token) 기반으로 동작하며,
클라이언트는 발급받은 토큰을 통해 인증이 필요한 API(예: 내 프로필 조회) 를 호출할 수 있다.

또한 동일 이메일로 이미 다른 Provider로 가입되어 있는 경우, 중복 가입을 방지하고 적절한 에러를 반환한다.

완료조건

Scenario 1. Google로 신규 가입/로그인 할 수 있다

Given 사용자가 로그인되지 않은 상태이고
When 사용자가 Google 소셜 로그인을 시도해 인증에 성공하면
Then 서버는 사용자 정보를 조회하고, 존재하지 않으면 사용자를 생성한다
And 서버는 Access Token과 Refresh Token을 발급한다
And 사용자는 발급된 토큰으로 인증이 필요한 API를 호출할 수 있다

Scenario 2. Naver로 신규 가입/로그인 할 수 있다

Given 사용자가 로그인되지 않은 상태이고
When 사용자가 Naver 소셜 로그인을 시도해 인증에 성공하면
Then 서버는 사용자 정보를 조회하고, 존재하지 않으면 사용자를 생성한다
And 서버는 Access Token과 Refresh Token을 발급한다
And 사용자는 발급된 토큰으로 인증이 필요한 API를 호출할 수 있다

Scenario 3. Kakao로 신규 가입/로그인 할 수 있다

Given 사용자가 로그인되지 않은 상태이고
When 사용자가 Kakao 소셜 로그인을 시도해 인증에 성공하면
Then 서버는 사용자 정보를 조회하고, 존재하지 않으면 사용자를 생성한다
And 서버는 Access Token과 Refresh Token을 발급한다
And 사용자는 발급된 토큰으로 인증이 필요한 API를 호출할 수 있다

Scenario 4. 이미 가입된 사용자는 동일 Provider로 재로그인할 수 있다

Given 사용자가 특정 Provider(예: Google)로 가입되어 있고
When 사용자가 동일 Provider로 다시 소셜 로그인을 성공하면
Then 서버는 기존 사용자로 판단하고 사용자 생성 없이 로그인 처리한다
And 서버는 Access Token과 Refresh Token을 재발급한다

참고 자료 (선택)

No response

Sub-issues

Metadata

Metadata

Labels

APIAPI 설계 및 구현, 엔드포인트 관련 작업backend백엔드 전반 로직, 서버 구현 작업frontend프론트엔드 전반 로직, UI/상태를 제외한 구현 작업goal: feature사용자에게 제공되는 기능 구현 작업

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions