JWT 토큰 사용 (인증 방식)
쿠키에 저장 (저장 방식)
HttpOnly 쿠키로 XSS 방지
회원가입 API
- Endpoint
POST /api/auth/signup
- Request Body
{
"name": "홍길동",
"userId": "user123",
"password": "password123!"
}
- Response (성공)
{
"success": true,
"message": "회원가입이 완료되었습니다.",
"data": {
"userId": "user123",
"name": "홍길동",
"createdAt": "2024-01-23T10:30:00Z"
}
}
- Response (실패)
{
"success": false,
"message": "이미 존재하는 아이디입니다.",
"errorCode": "DUPLICATE_USER_ID"
}
- 아이디 중복 확인 API
- Endpoint
GET /api/auth/check-duplicate?userId={userId}
Query Parameters
필드 타입 필수 설명
userId string O 확인할 아이디
- Response (사용 가능)
{
"success": true,
"available": true,
"message": "사용 가능한 아이디입니다."
}
- Response (중복)
{
"success": true,
"available": false,
"message": "이미 사용 중인 아이디입니다."
}
로그인 API ⭐
- Endpoint
POST /api/auth/login
- Request Body
{
"userId": "user123",
"password": "password123!"
}
- Response (성공)
{
"success": true,
"message": "로그인 성공",
"data": {
"userId": "user123",
"name": "홍길동"
}
}
- Response Headers (서버에서 자동 설정)
Set-Cookie: accessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; HttpOnly; Secure; SameSite=Strict; Path=/; Max-Age=3600
Set-Cookie: refreshToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; HttpOnly; Secure; SameSite=Strict; Path=/; Max-Age=604800
토큰 갱신 API ⭐
- Endpoint
POST /api/auth/refresh
- Request
refreshToken 쿠키가 자동으로 전송됨