---
description: 회원 및 사용자 인증 관련 API
---

# Auth API



## 회원가입

<mark style="color:green;">`POST`</mark> `https://soojle.io/sign_up`

회원가입을 위한 API

#### Request Body

| Name      | Type   | Description |
| --------- | ------ | ----------- |
| id        | string | 아이디         |
| pw        | string | 비밀번호        |
| pw\_check | string | 비밀번호 확인     |
| nickname  | string | 닉네임         |

{% tabs %}
{% tab title="200 " %}
```javascript
1. 로그인 성공
{
    "result": "success",
    "access_token": <string>
}

2. 길이 조건 미충족
{
    "result": "wrong user info"
}

3. 비밀번호 미일치
{
    "result": "check pw"
}

4. 내부 에
{
    "result": "sign_up fail"
}
```
{% endtab %}
{% endtabs %}

## 로그인

<mark style="color:green;">`POST`</mark> `https://soojle.io/sign_in`

로그인 API

#### Request Body

| Name | Type   | Description |
| ---- | ------ | ----------- |
| id   | string | 아이디         |
| pw   | string | 비밀번호        |

{% tabs %}
{% tab title="200 " %}
```javascript
1. 로그인 성공
{
    "result": "success",
    "access_token": <string>
}

2. 비밀번호 틀림
{
    "result": "incorrect pw"
}

3. 블랙리스트 회원
{
    "result": "blacklist user"
}

4. 없는 회원
{
    "result": "No member"
}
```
{% endtab %}
{% endtabs %}

## &#x20;로그인 및 토큰 반환 (미사용)

<mark style="color:green;">`POST`</mark> `https://soojle.io/sign_in_up`

&#x20;회원으로 저장된 ID 및 비밀번호가 일치할 경우, 액세스 토큰을 반환함.

#### Request Body

| Name | Type   | Description |
| ---- | ------ | ----------- |
| id   | string |  사용자 아이디    |
| pw   | string | 사용자 비밀번호    |

{% tabs %}
{% tab title="200 " %}
```javascript
1. 로그인 성공
{
    "result": "success",
    "access_token": <string>
}

2. 세종대학교 구성원 인증 불통과
{
    "result":"not sejong"
}

3. 비밀번호 오류
{
    "result":"pw incorrect"
}

4. 세종대학교 내부 전산 오
{
    "result": "api error"
}
```
{% endtab %}
{% endtabs %}

## 닉네임 변경

<mark style="color:green;">`POST`</mark> `https://soojle.io/change_nickname`

닉네임 변을 위한 API

#### Headers

| Name          | Type   | Description                |
| ------------- | ------ | -------------------------- |
| Authorization | string | Value: "Bearer" + \<token> |

#### Request Body

| Name          | Type   | Description |
| ------------- | ------ | ----------- |
| new\_nickname | string | 새로운 닉네임     |

{% tabs %}
{% tab title="200 " %}
```javascript
1. 로그인 성공
{
    "result": "success",
}

2. 길이 조건 미충족
{
    "result": "rewrite_nickname"
}

3. 없는 회원 
{
    "result": "No member"
}

```
{% endtab %}
{% endtabs %}

## 회원 탈퇴

<mark style="color:blue;">`GET`</mark> `https://soojle.io/remove_mine`

회원 탈퇴를 위한 API

#### Headers

| Name          | Type   | Description                |
| ------------- | ------ | -------------------------- |
| Authorization | string | Value: "Bearer" + \<Token> |

{% tabs %}
{% tab title="200 " %}
```javascript
1. 성공
{
    "result": "success"
}

2. 없는 회원
{
    "result": "Not found"
}
```
{% endtab %}
{% endtabs %}

## 자동 로그인 유무 변경

<mark style="color:blue;">`GET`</mark> `https://soojle.io/update_auto_login/<int:auto_login>`

회원가입을 위한 API

#### Path Parameters

| Name        | Type    | Description             |
| ----------- | ------- | ----------------------- |
| auto\_login | integer | <p>0: 자동X<br>1: 자동O</p> |

#### Headers

| Name          | Type   | Description                |
| ------------- | ------ | -------------------------- |
| Authorization | string | Value: "Bearer" + \<Token> |

{% tabs %}
{% tab title="200 " %}
```javascript
1. 로그인 성공
{
    "result": "success",
}

```
{% endtab %}
{% endtabs %}

## 회원 정보 반환

<mark style="color:blue;">`GET`</mark> `https://soojle.io/get_userinfo`

&#x20;특정 회원의 정보를 반환함.

#### Headers

| Name          | Type   | Description                |
| ------------- | ------ | -------------------------- |
| Authorization | string | Value: "Bearer" + \<token> |

{% tabs %}
{% tab title="200 " %}
```javascript
1. 토큰 인증 성공 (회원정보 반환)
{
    "result": "success",
    "user_id": <string>
    "user_name": <string>
    "user_major": <string>
}
2. 토큰 인증 실패
{
    "result":"not found"
}
```
{% endtab %}
{% endtabs %}

## 회원정보 특정 필드 반환

<mark style="color:blue;">`GET`</mark> `https://soojle.io/get_specific_userinfo/<int:type_num>`

&#x20;특정 회원의 특정한 필드를 반환함.

#### Path Parameters

| Name      | Type    | Description                                                                    |
| --------- | ------- | ------------------------------------------------------------------------------ |
| type\_num | integer | <p> 특정필드 번호<br>0: 전체<br>1: 좋아요 리스트<br>2: 접근한 리스트<br>3: 검색기록<br>4: 접근한 뉴스피드</p> |

#### Headers

| Name          | Type   | Description                |
| ------------- | ------ | -------------------------- |
| Authorization | string | Value: "Bearer" + \<token> |

{% tabs %}
{% tab title="200 " %}
```javascript
0. 전체
{
    "result": "success",
    "user_id": <string>, 
    "fav_list": <list>{
              _id:<oid>,
              topic:<list>,
              tag:<list>,
              token:<list>,
              date:<datetime>,
              post_date:<datetime>,
              title:<string>,
              url:<string>,
              img:<int>
            },
    "view_list": <list>{
              _id:<oid>,
              topic:<list>,
              tag:<list>,
              token:<list>,
              date:<datetime>,
              post_date:<datetime>,
              title:<string>,
              url:<string>,
              img:<int>
            },
    "search_list": <string list>{
              original:<string>,
              search_split:<list>,
              tokenizer_split:<list>,
              similarity_split:<list>,
              date:<datetime>
            },
    "newsfeed_list": <list>{
                 newsfeed_name:<string>,
                 tag:<list>
                }
}
1. 좋아요
{
    "result": "success",
    "user_id": <string>, 
    "fav_list": <list>{
              _id:<oid>,
              topic:<list>,
              tag:<list>,
              token:<list>,
              date:<datetime>,
              post_date:<datetime>,
              title:<string>,
              url:<string>,
              img:<int>
            }
}
2. 조회 리스트
{
    "result": "success",
    "user_id": <string>, 
    "view_list": <list>{
              _id:<oid>,
              topic:<list>,
              tag:<list>,
              token:<list>,
              date:<datetime>,
              post_date:<datetime>,
              title:<string>,
              url:<string>,
              img:<int>
            }
}
3. 검색 리스트
{
    "result": "success",
    "user_id": <string>, 
    "search_list": <string list>{
              original:<string>,
              search_split:<list>,
              tokenizer_split:<list>,
              similarity_split:<list>,
              date:<datetime>
            }
}
4. 접근한 뉴스피드
{
    "result": "success",
    "user_id": <string>, 
    "newsfeed_list": <list>{
                 newsfeed_name:<string>,
                 tag:<list>
                }
}

실패
{
    "result": "bad request"
}
```
{% endtab %}
{% endtabs %}

## 회원 관심도 초기화

<mark style="color:blue;">`GET`</mark> `https://soojle.io/reset_user_measurement`

회원 관심도 초기화를 위한 API

#### Headers

| Name          | Type   | Description                |
| ------------- | ------ | -------------------------- |
| Authorization | string | Value: "Bearer" + \<Token> |

{% tabs %}
{% tab title="200 " %}
```javascript
1. 성공
{
    "result": "success"
}

2. 없는 회원
{
    "result": "Not found"
}
```
{% endtab %}
{% endtabs %}
