회원 인증(Auth)
1. 회원가입
1.1. 성공 201
http-request
POST /auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 121
Host: docs.api.com
{
"email" : "user@test.com",
"password" : "passWORD123!",
"nickname" : "testUser1",
"authKey" : "11111111"
}
email
String
valid email
password
String
valid password
nickname
String
valid nickname
authKey
String
auth key
http-response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 135
{
"accessToken" : "Bearer AccessToken",
"refreshToken" : "Bearer RefreshToken",
"avatarPath" : "http://image/image.jpg.com"
}
accessToken
String
set client’s local storage
refreshToken
String
set client’s cookie
avatarPath
String
profile image path
1.2. 실패 400_유효성 검사
http-request
POST /auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 121
Host: docs.api.com
{
"email" : "user@testtest",
"password" : "passWORD123!",
"nickname" : "testUser1",
"authKey" : "11111111"
}
email
String
invalid email
password
String
password
nickname
String
nickname
authKey
String
auth Key
http-response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 131
{
"status" : 400,
"code" : "400 BAD_REQUEST",
"message" : null,
"validation" : {
"email" : "invalid email"
}
}
1.3. 실패 404_인증키
http-request
POST /auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 121
Host: docs.api.com
{
"email" : "user@test.com",
"password" : "passWORD123!",
"nickname" : "testUser1",
"authKey" : "11111111"
}
email
String
valid email
password
String
valid password
nickname
String
valid nickname
authKey
String
auth key is only valid for one hour
http-response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 131
{
"status" : 404,
"code" : "INVALID_AUTH_KEY",
"message" : "invalid auth key, check your email",
"validation" : null
}
1.4. 실패 409_중복_이메일
http-request
POST /auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 121
Host: docs.api.com
{
"email" : "user@test.com",
"password" : "passWORD123!",
"nickname" : "testUser1",
"authKey" : "11111111"
}
email
String
exist email
password
String
valid password
nickname
String
valid nickname
authKey
String
auth Key
http-response
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 105
{
"status" : 409,
"code" : "EMAIL_EXISTS",
"message" : "EMAIL_EXISTS",
"validation" : null
}
1.5. 실패 409_중복_닉네임
http-request
POST /auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 121
Host: docs.api.com
{
"email" : "user@test.com",
"password" : "passWORD123!",
"nickname" : "testUser1",
"authKey" : "11111111"
}
email
String
valid email
password
String
valid password
nickname
String
이미 존재하는 닉네임.
authKey
String
auth Key
http-response
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 111
{
"status" : 409,
"code" : "NICKNAME_EXISTS",
"message" : "nickname exists",
"validation" : null
}
2. 이메일 인증 메일 전송
2.1. 성공 201
http-request
POST /auth/mail HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 33
Host: docs.api.com
{
"email" : "user@test.com"
}
email
String
the same email can only be verified once every 5 minutes.
http-response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 4
true
2.2. 실패 409_시간 제한
http-request
POST /auth/mail HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 33
Host: docs.api.com
{
"email" : "user@test.com"
}
email
String
the same email can only be verified once every 5 minutes.
http-response
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 170
{
"status" : 409,
"code" : "AUTH_KEY_ALREADY_EXISTS",
"message" : "auth key already exists, you can only request once every 5 minutes",
"validation" : null
}
2.3. 실패 409_이미 존재하는 이메일
http-request
POST /auth/mail HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 33
Host: docs.api.com
{
"email" : "user@test.com"
}
email
String
이미 존재하는 이메일
http-response
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 105
{
"status" : 409,
"code" : "EMAIL_EXISTS",
"message" : "EMAIL_EXISTS",
"validation" : null
}
3. 이메일 인증
3.1. 성공 200
http-request
PUT /auth/mail HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 60
Host: docs.api.com
{
"email" : "user@test.com",
"authKey" : "11111111"
}
authKey
String
user authKey
email
String
user email
http-response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 31
{
"authKey" : "222222222"
}
authKey
String
set in user’s useState And send when requestJoin
3.2. 실패 404_존재하지_않음
http-request
PUT /auth/mail HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 60
Host: docs.api.com
{
"email" : "user@test.com",
"authKey" : "11111111"
}
authKey
String
invalid authKey
email
String
user email
http-response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 131
{
"status" : 404,
"code" : "INVALID_AUTH_KEY",
"message" : "invalid auth key, check your email",
"validation" : null
}
4. 닉네임 중복 확인
4.1. 성공 200
http-request
POST /auth/nickname HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 32
Host: docs.api.com
{
"nickname" : "testUser1"
}
nickname
String
중복되지 않는 닉네임
http-response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 4
true
4.2. 실패 400_유효성 검사
http-request
POST /auth/nickname HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 35
Host: docs.api.com
{
"nickname" : "ㅋㅋㅋㅋ"
}
nickname
String
유효성 검사 실패, 닉네임은 null이거나 공백일 수 없으며 닉네임 규정을 충족해야합니다.
http-response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 137
{
"status" : 400,
"code" : "400 BAD_REQUEST",
"message" : null,
"validation" : {
"nickname" : "invalid nickname"
}
}
4.3. 실패 409_닉네임 중복
http-request
POST /auth/nickname HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 32
Host: docs.api.com
{
"nickname" : "testUser1"
}
nickname
String
이미 존재하는 닉네임 요청
http-response
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 111
{
"status" : 409,
"code" : "NICKNAME_EXISTS",
"message" : "nickname exists",
"validation" : null
}
5. 로그인
5.1. 성공 201
http-request
POST /auth/token HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 65
Host: docs.api.com
{
"email" : "user@test.com",
"password" : "passWORD123!"
}
email
String
valid user email
password
String
valid user password
http-response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 136
{
"accessToken" : "Bearer AccessToken",
"refreshToken" : "Bearer RefreshToken",
"avatarPath" : "http://image/image.jpg/test"
}
accessToken
String
accessToken, set client’s LocalStorage
refreshToken
String
refreshToken, set client’s Cookie
avatarPath
String
profile image remote path
5.2. 실패 401 잘못된 입력값
http-request
POST /auth/token HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 65
Host: docs.api.com
{
"email" : "user@test.com",
"password" : "passWORD123!"
}
email
String
Invalid email or not found email
password
String
Invalid password or not found email
http-response
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 105
{
"status" : 401,
"code" : "INVALID_USER",
"message" : "INVALID_USER",
"validation" : null
}
response-fields
{
"status" : 401,
"code" : "INVALID_USER",
"message" : "INVALID_USER",
"validation" : null
}
6. 로그아웃
6.1. 성공 204
http-request
DELETE /auth/token HTTP/1.1
RefreshToken: Bearer RefreshToken
Host: docs.api.com
http-response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
6.2. 실패 404
http-request
DELETE /auth/token HTTP/1.1
RefreshToken: Bearer RefreshToken
Host: docs.api.com
http-response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 111
{
"status" : 404,
"code" : "TOKEN_NOT_FOUND",
"message" : "TOKEN_NOT_FOUND",
"validation" : null
}
response-fields
{
"status" : 404,
"code" : "TOKEN_NOT_FOUND",
"message" : "TOKEN_NOT_FOUND",
"validation" : null
}
7. 리프레시 토큰 갱신
7.1. 성공 201
http-request
PUT /auth/token HTTP/1.1
RefreshToken: Bearer RefreshToken
Host: docs.api.com
http-response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 136
{
"accessToken" : "Bearer AccessToken",
"refreshToken" : "Bearer RefreshToken",
"avatarPath" : "http://image/image.jpg/test"
}
accessToken
String
set client’s localStorage
refreshToken
String
set client’s cookie
avatarPath
String
user profile image
7.2. 실패 401_유효하지 않은 토큰
http-request
PUT /auth/token HTTP/1.1
RefreshToken: Bearer RefreshToken
Host: docs.api.com
http-response
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 111
{
"status" : 401,
"code" : "EXPIRED_EXCEPTION",
"message" : "expired token",
"validation" : null
}
response-fields
{
"status" : 401,
"code" : "EXPIRED_EXCEPTION",
"message" : "expired token",
"validation" : null
}
7.3. 실패 404_존재하지 않는 토큰
http-request
PUT /auth/token HTTP/1.1
RefreshToken: Bearer RefreshToken
Host: docs.api.com
http-response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 111
{
"status" : 404,
"code" : "TOKEN_NOT_FOUND",
"message" : "TOKEN_NOT_FOUND",
"validation" : null
}
response-fields
{
"status" : 404,
"code" : "TOKEN_NOT_FOUND",
"message" : "TOKEN_NOT_FOUND",
"validation" : null
}
8. 비밀번호 변경
8.1. 성공 200
http-request
PATCH /auth/password HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: AccessToken
Content-Length: 78
Host: docs.api.com
{
"originalPassword" : "passWORD123!",
"newPassword" : "passWORD321!"
}
originalPassword
String
변경 전 패스워드
newPassword
String
유효성 검사 실패 패스워드
http-response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 4
true
8.2. 실패 409_잘못된 패스워드
http-request
PATCH /auth/password HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: AccessToken
Content-Length: 77
Host: docs.api.com
{
"originalPassword" : "passWORD123!",
"newPassword" : "PASSWORD123"
}
originalPassword
String
변경 전 패스워드
newPassword
String
유효성 검사 실패 패스워드
http-response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 140
{
"status" : 400,
"code" : "400 BAD_REQUEST",
"message" : null,
"validation" : {
"newPassword" : "invalid password"
}
}
8.3. 실패 409_잘못된 패스워드
http-request
PATCH /auth/password HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: AccessToken
Content-Length: 78
Host: docs.api.com
{
"originalPassword" : "passWORD123!",
"newPassword" : "passWORD321!"
}
originalPassword
String
기존 패스워드(잘못된 값 입력)
newPassword
String
변경 희망 패스워드
http-response
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 149
{
"status" : 409,
"code" : "MISMATCHED_PASSWORD",
"message" : "mismatched password, check your original password",
"validation" : null
}
9. 비밀번호 찾기_이메일 인증
9.1. 성공 201_이메일 전송
http-request
POST /auth/password/support HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 33
Host: docs.api.com
{
"email" : "user@test.com"
}
email
String
user email
http-response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 4
true
9.2. 실패 404_존재하지 않는 이메일
http-request
POST /auth/password/support HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 33
Host: docs.api.com
{
"email" : "user@test.com"
}
email
String
존재하지 않는 유저 메일일 경우
http-response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 145
{
"status" : 404,
"code" : "USER_NOT_FOUND",
"message" : "The user is a user who has left or does not exist.",
"validation" : null
}
9.3. 실패 409_5분내_요청_이력
http-request
POST /auth/password/support HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 33
Host: docs.api.com
{
"email" : "user@test.com"
}
email
String
5분 내에 해당 이메일로 인증키를 요청한 이력이 있을 경우
http-response
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 170
{
"status" : 409,
"code" : "AUTH_KEY_ALREADY_EXISTS",
"message" : "auth key already exists, you can only request once every 5 minutes",
"validation" : null
}
10. 비밀번호 찾기_임시패스워드 발급
10.1. 성공 200_이메일 전송
http-request
POST /auth/password/recovery HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 60
Host: docs.api.com
{
"email" : "user@test.com",
"authKey" : "11111111"
}
email
String
유저 이메일
authKey
String
인증키
http-response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 4
true
10.2. 실패 400_유효성 검사
http-request
POST /auth/password/recovery HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 54
Host: docs.api.com
{
"email" : "user@test.com",
"authKey" : null
}
email
String
이메일
authKey
Null
인증키
http-response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 137
{
"status" : 400,
"code" : "400 BAD_REQUEST",
"message" : null,
"validation" : {
"authKey" : "must not be blank"
}
}
10.3. 실패 404_존재하지 않는 인증키
http-request
POST /auth/password/recovery HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 60
Host: docs.api.com
{
"email" : "user@test.com",
"authKey" : "11111111"
}
email
String
유저 이메일
authKey
String
잘못된 인증키
http-response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 131
{
"status" : 404,
"code" : "INVALID_AUTH_KEY",
"message" : "invalid auth key, check your email",
"validation" : null
}
11. 회원탈퇴
11.1. 성공 204
http-request
DELETE /auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 35
Host: docs.api.com
{
"password" : "passWORD123!"
}
password
String
올바르지 않은 (database 등록값과 다른) 패스워드
http-response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 106
{
"status" : 400,
"code" : "ONLY_TEST_CODE",
"message" : "BAD_REQUEST",
"validation" : null
}
11.2. 실패 400_유효성 검사
http-request
DELETE /auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 35
Host: docs.api.com
{
"password" : "passWORD123!"
}
password
String
패스워드 유효성 검사 실패 (null이거나 공백, 혹은 알 수 없는 문자열 오류)
http-response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 106
{
"status" : 400,
"code" : "ONLY_TEST_CODE",
"message" : "BAD_REQUEST",
"validation" : null
}
11.3. 실패 409_잘못된 패스워드
http-request
DELETE /auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 35
Host: docs.api.com
{
"password" : "passWORD123!"
}
password
String
올바르지 않은 (database 등록값과 다른) 패스워드
http-response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 106
{
"status" : 400,
"code" : "ONLY_TEST_CODE",
"message" : "BAD_REQUEST",
"validation" : null
}
Last updated
Was this helpful?