회원 가입
요청
Request
POST /sign-up HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 222
Host: docs.api.com
{
"loginId" : "loginId_1337",
"email" : "keeper@keeper.or.kr",
"realName" : "정현모minion",
"authCode" : "0123456789",
"birthday" : "1970.01.01",
"studentId" : "197012345",
"password" : "password123!@#$"
}
Request Fields
필드명 | 타입 | 필수값 | 양식 | 설명 |
---|---|---|---|---|
|
|
true |
로그인 아이디는 4~12자 영어, 숫자, '_'만 가능합니다. |
|
|
|
true |
이메일은 이메일 형식을 따라야 합니다. |
|
|
|
true |
비밀번호는 8~20자여야 하고 영어, 숫자가 포함되어야 합니다. |
|
|
|
true |
실명은 1~20자 한글, 영어만 가능합니다. |
|
|
|
true |
길이가 10인 인증 코드를 입력해야 합니다. |
|
|
|
생일 형식은 yyyy.MM.dd 입니다. |
||
|
|
true |
학번은 숫자만 가능합니다. |
응답
Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Location: /members/1
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Response Headers
Name | Description |
---|---|
|
생성된 회원의 URI입니다. |
이메일 인증
요청
Request
POST /sign-up/email-auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 33
Host: docs.api.com
{
"email" : "email@email.com"
}
Request Fields
필드명 | 타입 | 필수값 | 양식 | 설명 |
---|---|---|---|---|
|
|
true |
인증을 보낼 이메일을 보내시면 됩니다. |
응답
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 28
{
"expiredSeconds" : 300
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
인증코드 유효 기간 입니다. (단위: 초) |
로그인 아이디 중복 체크
요청
Request
GET /sign-up/exists/login-id?loginId=Sry76bYMw7xv HTTP/1.1
Host: docs.api.com
Request Param
파라미터명 | 필수값 | 양식 | 설명 |
---|---|---|---|
|
true |
중복을 확인할 로그인 아이디를 넣어주세요. |
응답
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 24
{
"duplicate" : true
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
중복이면 true, 아니면 false |
이메일 중복 체크
요청
Request
GET /sign-up/exists/email?email=BRLFG%403yZqI.com HTTP/1.1
Host: docs.api.com
Request Param
파라미터명 | 필수값 | 양식 | 설명 |
---|---|---|---|
|
true |
중복을 확인할 이메일을 넣어주세요. |
응답
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 24
{
"duplicate" : true
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
중복이면 true, 아니면 false |
학번 중복 체크
요청
Request
GET /sign-up/exists/student-id?studentId=059059388 HTTP/1.1
Host: docs.api.com
Request Param
파라미터명 | 필수값 | 양식 | 설명 |
---|---|---|---|
|
true |
중복을 확인할 학번을 넣어주세요. |
응답
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 24
{
"duplicate" : true
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
중복이면 true, 아니면 false |
로그인
요청
Request
POST /sign-in HTTP/1.1
Content-Type: application/json;charset=UTF-8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36
Content-Length: 57
Host: docs.api.com
{
"loginId" : "loginId",
"password" : "password123"
}
Request Fields
필드명 | 타입 | 필수값 | 양식 | 설명 |
---|---|---|---|---|
|
|
true |
로그인 아이디 |
|
|
|
true |
비밀번호 |
응답
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyNCIsInJvbGVzIjoiUk9MRV_tmozsm5AiLCJpYXQiOjE3MTExMTkxMjQsImV4cCI6MTcxMjMyODcyNH0.1DRGnYD_DP3NSis6zC6Al5Q0eHNT-P8Blke8wnNxLZA; Path=/; Max-Age=1209600; Expires=Fri, 5 Apr 2024 14:52:04 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyNCIsInJvbGVzIjoiUk9MRV_tmozsm5AiLCJpYXQiOjE3MTExMTkxMjQsImV4cCI6MTcxMTEyMjcyNH0.zSR5mmh7g2ZVq85h9IBm12uiQLj9mnUzOmEUEw-I-RA; Path=/; Max-Age=1209600; Expires=Fri, 5 Apr 2024 14:52:04 GMT; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 376
{
"memberId" : 24,
"loginId" : "loginId",
"emailAddress" : "1IFgq@TeKLH.com",
"realName" : "SUPmzNEABt",
"birthday" : "1970-01-01",
"studentId" : "633963527",
"thumbnailPath" : null,
"generation" : "15.0",
"point" : 0,
"level" : 0,
"totalAttendance" : 0,
"memberType" : "정회원",
"memberRank" : "일반회원",
"memberJobs" : [ "ROLE_회원" ]
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
회원 아이디 |
|
|
로그인 아이디 |
|
|
이메일 |
|
|
실명 |
|
|
생일 |
|
|
학번 |
|
|
썸네일 경로 |
|
|
기수 |
|
|
보유 포인트 |
|
|
레벨 |
|
|
총 출석 횟수 |
|
|
회원 타입 |
|
|
회원 랭크 |
|
|
회원 역할 |
Response Cookies
Name | Description |
---|---|
|
ACCESS TOKEN |
|
REFRESH TOKEN |
로그아웃
Cookie를 제거하고 서버의 인증 정보를 제거합니다. |
요청
Request
POST /sign-out HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyNSIsInJvbGVzIjoiUk9MRV_tmozsm5AiLCJpYXQiOjE3MTExMTkxMjQsImV4cCI6MTcxMTEyMjcyNH0.-DlvnQKM0wKNa9b2gX3zZRc2Xk0e2_zvHgeLRuJHnuE
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyNSIsInJvbGVzIjoiUk9MRV_tmozsm5AiLCJpYXQiOjE3MTExMTkxMjQsImV4cCI6MTcxMjMyODcyNH0.NdWV8gGMpz8sO2LnhrIlbrQMtd7va2XrwbGDdYw_810
Content-Type: application/x-www-form-urlencoded
Request Cookies
Name | Description |
---|---|
|
ACCESS TOKEN |
|
REFRESH TOKEN |
응답
Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
로그인 아이디 찾기
요청
Request
POST /sign-in/find-login-id HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 33
Host: docs.api.com
{
"email" : "OQfAN@3VytX.com"
}
Request Fields
필드명 | 타입 | 필수값 | 양식 | 설명 |
---|---|---|---|---|
|
|
true |
이메일 |
응답
Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
비밀번호 변경용 인증 코드 발송
이 API는 임시 인증 코드를 메일로 발송하기만 하고 비밀번호를 바꾸진 않습니다. |
요청
Request
POST /sign-in/send-password-change-auth-code HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 63
Host: docs.api.com
{
"email" : "DIfds@vqLjI.com",
"loginId" : "WhUe4jMrXn9r"
}
Request Fields
필드명 | 타입 | 필수값 | 양식 | 설명 |
---|---|---|---|---|
|
|
true |
이메일 |
|
|
|
true |
로그인 아이디 |
응답
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 28
{
"expiredSeconds" : 300
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
인증 코드 만료 시간(초) |
인증 코드 확인
요청
Request
GET /sign-in/check-auth-code?email=Aybtg%40MTbME.com&loginId=1h1vdlmhPfGK&authCode=iNeYjboA HTTP/1.1
Host: docs.api.com
Request Params
파라미터명 | 필수값 | 양식 | 설명 |
---|---|---|---|
|
true |
이메일 |
|
|
true |
로그인 아이디 |
|
|
true |
인증 코드 |
응답
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 19
{
"auth" : true
}
Response Fields
Path | Type | Description |
---|---|---|
|
|
authCode가 일치하면 true, 아니면 false |
비밀번호 변경
요청
Request
PATCH /sign-in/change-password-for-missing HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 123
Host: docs.api.com
{
"loginId" : "r7EAbynRxczo",
"email" : "lJZtK@wFWX0.com",
"authCode" : "P6nqn0za",
"password" : "newPassword123"
}
Request Fields
필드명 | 타입 | 필수값 | 양식 | 설명 |
---|---|---|---|---|
|
|
true |
이메일 |
|
|
|
true |
로그인 아이디 |
|
|
|
true |
인증 코드 |
|
|
|
true |
새로운 비밀번호 |
응답
Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refreshToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: accessToken=; Path=/; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY