FE 소셜로그인 버튼 클릭 → http://43.201.30.206:8080/api/v1/auth/oauth2/kakao 또는 http://43.201.30.206:8080/api/v1/auth/oauth2/naver 이동
카카오/네이버의 로그인 페이지로 이동
로그인 성공시 BE로 데이터 들어옴,
자체 계정이 있는 경우, http://localhost:3000/oauth?accessToken={...} &refreshToken={...} 으로 리다이렉트
없는 경우는 http://localhost:3000/oauth-link?oauthId={oauthMemberId} &provider="{provider} &email={email} 로 리다이렉트
기존 회원가입/로그인 페이지와 유사하나, 별도의 페이지가 나옴 (FE 구현 필요)
로그인 Req
{
"email": "string",
"password": "string",
"oauthId": "string",
"oauthProvider": "string",
"oauthEmail": "string"
}
//대충 기본 SignInReq + oauth 3종
//성공시 Oauth 연동 + 토큰발급
회원가입 Req
{
"email": "[email protected]",
"password": "string",
"name": "string4",
"phone": "string4",
"postalCode": "string",
"address": "string",
"birth": "2024-09-14",
"oauthId": "3703260504",
"oauthProvider": "kakao",
"oauthEmail": "[email protected]"
}
//대충 기존 회원가입Req + oauth 3종
//성공시 Member회원가입 + Oauth 연동 + 토큰발급
로그인 / 회원가입 모두 토큰 반환으로 응답은 동일
성공시
Response body
{
"httpStatus": "OK",
"isSuccess": true,
"message": "요청에 성공하였습니다.",
"code": 200,
"result": {
"uuid": "iHSWXoJ2QPVVhPr0gQGWo"
}
}
Response headers
authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjaGljY2hvYyIsImlhdCI6MTcyNjM1ODU0NywiZXhwIjoxNzI2MzYyMTQ3LCJzdWIiOiJpSFNXWG9KMlFQVlZoUHIwZ1FHV28ifQ.mkK7di62CBAi7PdAlamO-jVD8vqHMN9hBv19dfN-Qbo
x-refresh-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjaGljY2hvYyIsImlhdCI6MTcyNjM1ODU0NywiZXhwIjoxNzI2OTYzMzQ3LCJzdWIiOiJpSFNXWG9KMlFQVlZoUHIwZ1FHV28ifQ.JBO8zaVTv6dRiw3GDGCQPM30tOV7yOzA8LT8xJWKeAA
실패시 - 예외처리가 아직 완벽하진 않은데, 응답의 isSuccess가 false일 경우 message를 띄어주면 되지 않을까 싶습니다
{
"httpStatus": "CONFLICT",
"isSuccess": false,
"message": "이미 사용중인 이름과 전화번호입니다.",
"code": 2104,
"result": null
}
현재는 기존의 Auth 회원가입/로그아웃 API 건드리기가 무서워서 oAuth의 API와 다른데, 이 부분은 특별한 문제가 없다면 리팩토링해서 통합할 수도 있을 것 같습니다.