※ 명세에 설명되어있지 않은 상태 코드나 데이터가 나왔다면 바로 알려주세요!
API 타이틀은 제목 3으로 한다.
| Route(주소) | /part1/part2/:param1?query1={type} |
|---|---|
| API 목적 | 해당 API가 무슨 목적으로 만들어졌는지 설명한다. |
| Param | Param 타입 및 설명 작성 (없으면 없음 으로 작성.) |
| Query | Query 타입 및 설명 작성 (없으면 없음 으로 작성.) |
| Body | Body 구조 및 설명 작성 (없으면 없음 으로 작성.) |
| 성공 시 응답 | success1: 설명 |
data1: 구조 작성 (없으면 없음 으로 작성.) |
|
| 실패 시 응답 | failure1: 설명 |
data1: 구조 작성 (없으면 없음 으로 작성.) |
| Route(주소) | GET /api/auth/oauth/github |
|---|---|
| API 목적 | Github OAuth 로그인 과정을 시작한다. |
<a> 형식으로 접근 시 github 권한 허가 여부 페이지가 발생하며, |
|
| 허가 시 OAuth 절차에 따라 Access Token 발급 후 Session에 User 데이터를 저장한다. | |
| 완료 시 Root 페이지로 이동한다. | |
| Param | 없음 |
| Query | 없음 |
| Body | 없음 |
| 성공 시 응답 | 요청시 302와 함께 OAuth 권한을 허락받기 위한 페이지 주소를 받는다. |
| 실패 시 응답 | 실패 시 ‘/’으로 리다이렉션을 한다. |
※ Issue:
axios로 요청하여 이동할 링크를 받아온 뒤 해당 주소로 직접 접근을 시도하면 CORS 오류가 발생한다. 원인 파악 중. (<a> 태그로 접근 시 정상적인 로그인 가능)
→ axios 특성 상, 302 등의 리다이렉션 상태코드를 받으면 이와 함께 받은 주소로 자동으로 재요청을 보낸다. maxRedirects라는 옵션이 존재하긴 하나, 브라우저에서 axios를 사용하는 경우 해당 옵션은 무효화된다. 웬만하면 a 태그로 직접 접근할 것.
| Route(주소) | PUT /api/auth/logout |
|---|---|
| API 목적 | 로그아웃을 시도한다. |
| 로그아웃 요청 시 세션을 파기하여 로그인 정보를 삭제한다. | |
| Param | 없음 |
| Query | 없음 |
| Body | 없음 |
| 성공 시 응답 | 200: 로그아웃 완료 |
| 실패 시 응답 | 401: 비로그인 유저가 로그아웃을 시도함. |
| Route(주소) | GET /api/auth/status |
|---|---|
| API 목적 | 로그인 여부를 확인한다. |
| Param | 없음 |
| Query | 없음 |
| Body | 없음 |
| 성공 시 응답 | 200: 현재 로그인 상태 |
| 실패 시 응답 | 401: 현재 비로그인 상태 |