Home
  • 한국어
  • ENGLISH
Home
  • 한국어
  • ENGLISH
  • API 가이드
  • Withnox & Addnox

    • 소개
    • 인증
    • 유저
    • 기기
    • 베이스 스테이션
    • 분석 & 기록
    • 설문
    • OTA
  • Elexir 2.0

    • 소개
  • Elexir Legacy

    • 소개
    • 인증
    • 유저
    • 기기
  • LUX

    • 소개
    • 인증
    • 기기
    • 유저
  • ADT Device

    • 소개
    • 기기

인증

해당 페이지는 Elexir Legacy 프로젝트의 인증과 관련된 API를 설명해놓은 페이지입니다.

소개

Elexir Legacy 인증 API는 회원가입, 로그인과 같은 인증 관련 작업을 수행하는 기능입니다.

API 흐름에 대한 시각적인 흐름도가 필요하다면 Figma API Flow 페이지를 참고해주세요.

인증

일부 인증 API는 인증 토큰을 필요로 합니다. 인증을 하기위해서 Authorization header 에 인증 토큰을 넣어서 API를 호출해주세요.

Authorization: Bearer your_token_here

your_token_here 에 인증 과정에서 획득한 access_token으로 대체해주세요.

엔드포인트

로그인

해당 이메일과 비밀번호로 로그인하는 API입니다.

POST /api/v1/legacy/auth/signin

Body Parameters

NameTypedescription
username requiredstring이메일 값
password requiredstring비밀번호 값

요청 예시

POST /api/v1/legacy/auth/signin
Content-Type: application/x-www-form-urlencoded
{
  "username ": "string",
  "password ": "string"
}

응답 예시

200 OK

로그인이 성공하면 사용자에게 access_token과 refresh_token을 발급합니다. API 호출시에는 access_token을 사용하세요. refresh_token은 access_token 만료시 재발급할때 사용하세요.

{
  "access_token": "string",
  "expires_in": 0,
  "refresh_token": "string",
  "refresh_expires_in": 0,
  "id": 0,
  "token_type": "string"
}
ERROR

오류 응답

HTTP 상태 코드별로 API 상태 코드와 메시지를 제공합니다. 아래의 표를 참고하세요.

HTTP status codedetaildescription
401Incorrect email or password이메일 또는 비밀번호가 잘못됬습니다.
403Email is not verified이메일 인증이 완료되지 않았습니다.
410User is deleted회원탈퇴한 계정입니다.
423User is blocked차단된 계정입니다.
{
    "detail": "Password is invalid"
}

이메일 회원가입

입력받은 정보를 통해 회원가입을 완료하는 API입니다.

POST /api/v1/legacy/auth/signup

Body Parameters

NameTypedescription
email requiredstring이메일 값입니다.
password requiredstring비밀번호 입니다.
phone requiredstring전화번호 값입니다. 서버에서 국제전화번호형식으로 저장합니다.
- ex: 01012345678 or 010-1234-5678
username requiredstring회원가입할 유저의 이름입니다.
relation requiredstring디바이스를 본인이 사용하지 않을 경우 사용자와의 관계를 입력합니다.
- 부모
- 자녀
gender requiredstring회원가입할 유저의 성별입니다
- M : 남성
- F : 여성
birthdate requiredstring회원가입할 유저의 생년월일입니다(yyyy-mm-dd).
- 예시 : 1997-01-01
gender_real requiredstring디바이스를 본인이 사용하지 않을 경우 사용자의 성별입니다. 만약 본인이 사용한다면 gender값을 그대로 보내주세요.
- M : 남성
- F : 여성
birthdate_real requiredstring디바이스를 본인이 사용하지 않을 경우 사용자의 생년월일입니다(yyyy-mm-dd). 만약 본인이 사용한다면 birthdate값을 그대로 보내주세요.
- 예시 : 1997-01-01
social_google_id optionalstring구글 소셜 계정의 고유 sub 값
social_kakao_id optionalstring카카오 소셜 계정의 고유 sub 값
social_naver_id optionalstring네이버 소셜 계정의 고유 sub 값
social_apple_id optionalstringapple 소셜 계정의 고유 sub 값
is_marketing_agree requiredboolean마케팅 수신 동의 여부입니다.
is_push_agree requiredboolean푸시 알림 동의 여부입니다.
country requiredstring회원가입할 유저의 국가입니다. ISO 3166-1 alpha-2 형식을 따릅니다.

country 값 설명

country는 ISO 3166-1 alpha-2 형식을 따릅니다. KR (South Korea) 또는 KR 같은 형식으로 보내주세요.

해당 국가 코드에 따라 사용자의 전화번호를 국제 표준으로 파싱해서 저장합니다.

국가코드파싱된 번호
KR (South Korea)+821012345678
US (United States)+14053007661
TW (Taiwan)+886912341234

등등

요청 예시

POST   /api/v1/legacy/auth/signup
Content-Type: application/json
{
    "email": "jeongtae.kim@nueyne.com",
    "password": "1234",
    "phone": "01012345858",  // DB에는 +821012345678 로 치환되어 저장
    "username": "tester1234",
    "relation": "S",
    "gender": "M",
    "gender_real": "M",
    "birthdate": "1990-01-01",
    "birthdate_real": "1990-01-01",
    "is_marketing_agree": true,
    "is_push_agree": true,
    "country": "KR (South Korea)"
}

응답 예시

200 OK

회원가입이 성공하면 statuscode 201과 message를 리턴합니다. 사용자가 회원가입때 사용한 이메일로 인증메일을 전송합니다.

{
    "statusCode": 201,
    "message": "User created successfully"
}
ERROR

오류 응답

HTTP 상태 코드별로 API 상태 코드와 메시지를 제공합니다. 아래의 표를 참고하세요.

HTTP status codedetaildescription
400Email is not valid유효하지 않은 이메일 형식입니다.
400Invalid or unsupported country code유효하지 않은 국가코드 형식입니다.
400Invalid phone number format for country해당 국가의 전화번호 형식이 아닙니다.
400Could not parse phone number유효하지 않은 전화번호 형식입니다.
409Same email is already registered이미 회원가입한 이메일입니다.
409Same phone number is already registered이미 회원가입한 전화번호입니다.
409Email send failed인증 이메일 발송 실패.
{
  "detail": "Same email is already registered"
}

아이디 찾기

유저가 가입했던 정보를 가지고 아이디를 찾는 API입니다.

POST /api/v1/legacy/auth/find-id

Body Parameters

NameTypedescription
birthdate requiredstring생년월일 값입니다 (yyyy-mm-dd)
country requiredstring유저의 국가입니다. ISO 3166-1 alpha-2 형식을 따릅니다.
phone requiredstring전화번호 값입니다 (xxxxxxxxxxx)
gender requiredstring성별
- M : 남성
- F : 여성

요청 예시

POST /api/v1/legacy/auth/find-id
Content-Type: application/json
{
  "birthdate": "2000-01-01",
  "country": "KR (South Korea)",
  "phone": "01012345678",
  "gender": "M"
}

응답 예시

200 OK

사용자 이메일 값을 반환합니다.

"elexir_legacy@test.com"
ERROR

오류 응답

HTTP 상태 코드별로 API 상태 코드와 메시지를 제공합니다. 아래의 표를 참고하세요.

HTTP status codedetaildescription
400Invalid or unsupported country code유효하지 않은 국가코드 형식입니다.
400Invalid phone number format for country해당 국가의 전화번호 형식이 아닙니다.
400Could not parse phone number유효하지 않은 전화번호 형식입니다.
404User id not found해당 유저를 찾을 수 없습니다.
410User is deleted회원탈퇴한 계정입니다.
{
    "detail": "User id not found"
}

비밀번호 초기화

해당 이메일과 비밀번호로 로그인하는 API입니다.

POST /api/v1/legacy/auth/send-reset-mail

Body Parameters

NameTypedescription
email requiredstring이메일 값

요청 예시

POST /api/v1/legacy/auth/send-reset-mail
Content-Type: application/json
{
  "email": "string"
}

응답 예시

200 OK
{
  "statusCode": 200,
  "message": "User reset password email send successfully",
}
ERROR

오류 응답

HTTP 상태 코드별로 API 상태 코드와 메시지를 제공합니다. 아래의 표를 참고하세요.

HTTP status codedetaildescription
404User ID not found해당 유저를 찾을 수 없습니다.
500Email send failed이메일 발송 실패.
{
    "detail": "Email send failed"
}

토큰 재발급

refresh_token을 이용해 token을 재발급 받는 API입니다. refresh_token의 유저 정보가 일치하지만 DB에 저장된 refresh_token과 일치하지 않을 경우 중복 로그인으로 판단하여 DB의 refresh_token을 삭제합니다. 프론트단에서는 401 Refresh token is not valid 오류에서 로그아웃으로 분기해야 합니다.

POST /api/v1/legacy/auth/refresh-token

Body Parameters

NameTypedescription
refresh_token requiredstring기존 Refresh Token

요청 예시

POST /api/v1/legacy/auth/refresh-token
Content-Type: application/json
{
  "refresh_token": "string"
}

응답 예시

200 OK
{
    "access_token": "access_token",
    "expires_in": 900, // 15 분 
    "refresh_token": "new_refresh_token",
    "refresh_expires_in": 1209600,  // 2 주
    "id": "uuid",
    "token_type": "bearer",
}
ERROR

오류 응답

HTTP 상태 코드별로 API 상태 코드와 메시지를 제공합니다. 아래의 표를 참고하세요.

HTTP status codedetaildescription
401Token is expiredrefresh_token이 만료됨, 로그아웃시켜야함.
401Could not validate credentials잘못된 refresh_token, 로그아웃시켜야함.
401Refresh token is not valid중복 로그인으로 판단, 로그아웃시켜야함.
{
    "detail": "Refresh token is not valid"
}
최근 수정:: 25. 4. 23. 오전 6:24
Contributors: Jeongtae Kim
Prev
소개
Next
유저