회원


로그인

요청

카카오
GET https://kauth.kakao.com/oauth/authorize?response_type=CODE&client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI}
애플
GET https://appleid.apple.com/auth/authorize?response_type=CODE&client_id=${1HOUR_SERVICE_ID}&redirect_uri=${REDIRECT_URI}
Redirect Uri
  • {REDIRECT_URI} : AuthorizationCode를 제외한 Uri

GET /api/users/auth-callback/PROVIDER_NAME?code=AuthorizationCode HTTP/1.1
Path parameters
Table 1. /api/users/auth-callback/{provider}
Parameter Description

provider

OAuth 제공자 (예: kakao, apple 등)

Query parameters
Parameter Description

code

OAuth 제공자로부터 받은 인증 코드

응답

HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

{
  "accessToken" : "jwt.access.token",
  "refreshToken" : "jwt.refresh.token",
  "isProfileRequired" : true
}
Response fields
필드명 타입 필수값 양식 설명

accessToken

String

true

JWT AccessToken

refreshToken

String

true

JWT RefreshToken

isProfileRequired

Boolean

true

사용자가 프로필 설정을 완료해야 하는지 여부


회원가입

요청

HTTP request
POST /api/users/signup HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer jwt.token.here

{
  "birthday" : "1990-01-01",
  "isMarketingAllowed" : true,
  "interestIds" : [ 1, 2, 3, 4, 5 ],
  "gender" : "male",
  "nickname" : "아무개",
  "isNotificationAllowed" : true,
  "mbti" : "intj"
}
Request parts
Part Description

profile

업로드할 사용자 프로필 정보 (JSON)

primaryImage

업로드할 대표 프로필 사진

secondaryImages

업로드할 서브 프로필 사진들

Request fields
필드명 타입 필수값 설명 제약사항

nickname

String

true

사용자 닉네임

gender

String

true

성별

MALE or FEMALE만 입력 가능 (대소문자 상관 없음)

birthday

String

true

생년월일

yyyy-DD-mm 포맷 입력

mbti

String

true

MBTI

존재하는 MBTI만 입력 가능 (대소문자 상관 없음)

interestIds

Array

true

관심사 목록

DB에 존재하는 관심사만 가능, 반드시 5개여야 함

isMarketingAllowed

Boolean

true

마케팅 정보 수신 동의 여부

true 수신 동의, false 수신 거부

isNotificationAllowed

Boolean

true

알림 권한 동의 여부

true 권한 동의, false 권한 거부

응답

HTTP response
HTTP/1.1 201 Created

닉네임 중복확인

요청

HTTP request
GET /api/users/duplicate/USER_NICKNAME HTTP/1.1
Path parameters
Table 1. /api/users/duplicate/{nickname}
Parameter Description

nickname

중복 검사할 닉네임

응답

HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

{
  "isDuplicate" : false
}
Response fields
필드명 타입 필수값 양식 설명

isDuplicate

Boolean

true

중복 여부

에러 코드

  • 아직 미완성입니다 참고만 해주세요

코드 코드명

A000

소셜로그인 시, 요청으로 넘겨준 provider에 해당하는 Social Provider가 일치하지 않는 경우

A001

소셜로그인 시, 기존 가입자의 소셜로그인 정보를 찾을 수 없는 경우

A002

API 요청 시, 요청 헤더에 JWT 토큰이 없는 경우 (Bearer jwt.token.here)

A003

API요청 시, 해당 API에 접근할 수 있는 권한이 없는 사용자의 경우

A004

소셜로그인 시, 현재 Provider와 다른 Provider로 소셜로그인을 진행한 이력이 있는 경우

A005

유효하지 않은 소셜 인증 아이디일 경우

M000

사용자 조회 시, 입력 받은 id의 사용자가 존재하지 않는 경우

M001

회원가입 시, 가입하려는 사용자가 이미 가입을 완료한 상태인 경우

M002

회원가입 시, 닉네임의 길이가 2글자 이상 8글자 이하가 아닐때

M003

회원가입 시, 닉네임의 형식이 (한글음절/숫자[옵션]) 혹은 (한글/영어) 혹은 (한글/영어/숫자) 조합으로 이루어져 있지 않은 경우

M004

회원가입 시, 사용자가 올해 기준 법정 성인 연령이 아닌 경우

M005

회원가입 시, 성별을 찾을 수 없는 경우 ('MALE', 'FEMALE' 만 가능)

M006

회원가입 시, MBTI가 잘못 입력된 경우

M007

프로필 사진 업로드시, 프로필 사진이 1개 이상 3가 이하가 아닌 경우

M008

프로필 사진 업로드시, 이미 최초 프로필 사진 등록을 완료한 경우(최초 회원가입 프로필 사진 등록)

M009

닉네임이 이미 사용 중인 경우

C000

Credit 조회 시, 특정 사용자의 Credit정보를 찾을 수 없는 경우

R001

회원가입 시, 입력한 5개의 관심사 중에 존재하지 않는 관심사가 포함된 경우

R002

입력한 관심사가 일정 개수 이상인 경우

R003

입력한 관심사가 개수가 일치하지 않는 경우

R004

중복된 관심사가 입력된 경우

R005

알 수 없는 관심사 값이 입력된 경우

R006

관심사가 비어있을 경우

IM00

이미지 업로드시 이미지를 읽을 수 없는 경우

IM01

이미지 업로드시, 이미지가 NULL인 경우

IM02

이미지 업로드시, 이미지의 크기가 0인 경우

IM03

이미지 업로드시, 이미지의 이름이 비어있거나 NULL인 경우

IM04

이미지 업로드시, PNG JPEG JPG SVG 확장자가 아닌 파일인 경우

IM05

유효하지 않은 대표 사진 index일 경우

IM06

대표 프로필 이미지가 존재하지 않는 경우

IM07

대표 프로필 이미지가 너무 많은 경우

IM08

이미지의 크기가 너무 큰 경우

I000

Oauth2 사용자의 프로필을 요청할 수 없는 경우(Provider 서버 예외)

I001

JWT 검증 시, JWT 토큰 시그니처가 잘못된 경우

I002

JWT 검증 시, 토큰 형식이 JWT가 아닌 경우

I003

JWT 검증 시, JWT 토큰이 만료된 경우

I004

JWT 검증 시, 유효하지 않은 JWT 토큰인 경우

I005

이미지 업로드시, AWS S3에 이미지를 업로드할 수 없는 경우

ER001

예기치 못한 예외가 발생한 경우

ER002

잘못된 멀티파트 요청일 경우

ER003

잘못된 데이터 요청일 경우

G000

API 요청 시, request-fields의 값이 NULL인 경우