Skip to content

로그인 (Auth) API

yanggwangseong edited this page Nov 20, 2024 · 7 revisions

Auth

Method Endpoint Description
POST /sign-in 사용자 로그인
POST /sign-up 사용자 회원가입
POST /sign-out 사용자 로그아웃
PATCH /verify-email 이메일 인증 토큰 검증 및 사용자 활성화

[POST] 로그인 /auth/sign-in

Headers

Key Value Description
Content-Type application/json 요청 본문이 JSON 형식임을 지정
Authorization Basic base64(email:password) 사용자 인증을 위한 Basic Auth 헤더 (Base64)

Request

{
    "email": "[email protected]",
    "password": "test123"
}

Response

Success (200 OK):

{
   "accessToken": "jwt-access-token",
   "refreshToken": "jwt-refresh-token"
}

Exception

  • 401 Unauthorized: 이메일 또는 비밀번호가 잘못된 경우
{
  "success": false,
  "timestamp": "2023-02-22T06:25:08.663Z",
  "status": 401,
  "message": "이메일 또는 비밀번호가 잘못되었습니다",
  "path": "경로"
}
  • 400 Bad Request: 이메일 또는 비밀번호가 누락된 경우
{
  "success": false,
  "timestamp": "2023-02-22T06:25:08.663Z",
  "status": 400,
  "message": "이메일 또는 비밀번호가 누락되었습니다",
  "path": "경로"
}

[POST] 회원가입 /auth/sign-up

Headers

Key Value Description
Content-Type application/json 요청 본문이 JSON 형식임을 지정

Request

{
    "email": "[email protected]",
    "password": "test123"
}

Response

Success (201 Created):

{
   "accessToken": "jwt-access-token",
   "refreshToken": "jwt-refresh-token"
}

Exception

  • 400 Bad Request: 이메일 또는 비밀번호가 누락된 경우
{
  "success": false,
  "timestamp": "2023-02-22T06:25:08.663Z",
  "status": 400,
  "message": "이메일 또는 비밀번호가 누락되었습니다",
  "path": "경로"
}
  • 409 Conflict: 이미 존재하는 이메일
{
  "success": false,
  "timestamp": "2023-02-22T06:25:08.663Z",
  "status": 409,
  "message": "이미 존재하는 이메일입니다",
  "path": "경로"
}

[POST] 로그아웃 /auth/sign-out

Headers

Key Value Description
Authorization Bearer jwt-access-token JWT 인증을 위한 액세스 토큰

Request

No request body required

Response

Success (200 OK):

{
   "data": true
}

Exception

  • 401 Unauthorized: 토큰이 없거나 유효하지 않은 경우
{
  "success": false,
  "timestamp": "2023-02-22T06:25:08.663Z",
  "status": 401,
  "message": "토큰이 유효하지 않습니다",
  "path": "경로"
}

[PATCH] 이메일 인증 /auth/verify-email

Headers

Key Value Description
Content-Type application/json 요청 본문이 JSON 형식임을 지정

Request

{
    "email": "[email protected]",
    "verificationCode": "123456"
}

Response

Success (200 OK):

{
   "data": true
}

Exception

  • 400 Bad Request: 필수 필드 누락
{
  "success": false,
  "timestamp": "2023-02-22T06:25:08.663Z",
  "status": 400,
  "message": "필수 필드 누락",
  "path": "경로"
}
  • 401 Unauthorized: 인증코드가 잘못되었을때
{
  "success": false,
  "timestamp": "2023-02-22T06:25:08.663Z",
  "status": 401,
  "message": "인증코드가 잘못되었을때",
  "path": "경로"
}
  • 404 Not Found: 해당 이메일을 가진 사용자가 없는 경우
{
  "success": false,
  "timestamp": "2023-02-22T06:25:08.663Z",
  "status": 404,
  "message": "해당 이메일을 가진 사용자가 없는 경우",
  "path": "경로"
}