> For the complete documentation index, see [llms.txt](https://documenttesting.gitbook.io/ecolog-api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documenttesting.gitbook.io/ecolog-api-reference/reference/api/login.md).

# 로그인

## 소셜 로그인 <a href="#login" id="login"></a>

플랫폼 별 소셜 로그인 시 파라미터로 입력할 인증코드를 획득하는 방법은 다음과 같습니다.

{% tabs %}
{% tab title="카카오" %}

1. 하단의 주소에 접속해 카카오 로그인을 진행합니다.
   * Kakao(배포용): `https://kauth.kakao.com/oauth/authorize?client_id=257ddabd02ec0d494551a5af563b1c9f&redirect_uri=https://peppy-bonbonea3a7a.netlify.app/oauth&response_type=code`
2. 획득한 OAuth 인증코드를 요청 파라미터로 입력합니다.
   {% endtab %}

{% tab title="네이버" %}

1. 하단의 주소에 접속해 네이버 로그인을 진행합니다.
   * Naver(배포용): `https://nid.naver.com/oauth2.0/authorize?response_type=code&client_id=g_LUAeAaNdoi3o5xfqWB&redirect_uri=https://peppybonbon-ea3a7a.netlify.app/oauth&state=%ec%97%90%ec%bd%94%ec%97%90%ec%bd%94`
2. 획득한 code값과 state값을 요청 파라미터로 입력합니다.

   <figure><img src="/files/eHInnZIMpt3m4L8KPTYo" alt=""><figcaption><p>code값과 state값</p></figcaption></figure>

{% endtab %}

{% tab title="구글" %}

1. 하단의 주소에 접속합니다.
   * Google(배포용): `https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A//www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email&access_type=offline&include_granted_scopes=true&response_type=code&state=state_parameter_passthrough_value&redire ct_uri=https://peppy-bonbon-ea3a7a.netlify.app/oauth&client_id=476852619689-daci8ob3qd5jppn4u8eo79flnf8c0uf2.apps.googleusercontent.com`
2. 획득한 OAuth 인증코드를 요청 파라미터로 입력합니다.&#x20;
   {% endtab %}
   {% endtabs %}

### 카카오 <a href="#kakao" id="kakao"></a>

## 카카오 소셜 로그인 API

<mark style="color:blue;">`GET`</mark> `https://www.eco-log-backend.kro.kr/api/oauth/kakaotoken?code={인증코드}`

#### Path Parameters

| Name                                   | Type   | Description     |
| -------------------------------------- | ------ | --------------- |
| 인증코드<mark style="color:red;">\*</mark> | String | 획득한 OAuth 인증 코드 |

{% tabs %}
{% tab title="200: OK JWT 토큰" %}
복호화는 [JSON Web Tokens](https://jwt.io/) 사이트 참고하여 진행합니다.

```json
{
	"Authorization": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.
			eyJzdWIiOiJ2dzk4MDFAbmF2ZXIuY29tIiwibmlja25hbWUiOiLsnpDsl7DsuZztmZTsoIHsnbgg7Zmc64-Z6rCAIiwiaWQiOjEsImV4cCI6MTY2NDY5NjA5M30.
			2p8fvCjl4yD_rNNEb6sEeKhafTKsBEs7Y0eH7UZSS8ZJYK-lLoypX5jo72WD9F2-uVLLT0icMIAuV59ivcSTA"
}
```

{% endtab %}
{% endtabs %}

### 네이버 <a href="#naver" id="naver"></a>

## 네이버 소셜 로그인 API

<mark style="color:blue;">`GET`</mark> `https://www.eco-log-backend.kro.kr/api/oauth/navertoken?code={코드값}&state={state값}`

#### Path Parameters

| Name                                     | Type   | Description                                           |
| ---------------------------------------- | ------ | ----------------------------------------------------- |
| 코드값<mark style="color:red;">\*</mark>    | String | <p>인가코드<br>  - <code>AJuAagNCaGkmdUVDdx</code> 입력</p> |
| state값<mark style="color:red;">\*</mark> | String | `에코에코` 입력                                             |

{% tabs %}
{% tab title="200: OK JWT 토큰" %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

### 구글 <a href="#google" id="google"></a>

## 구글 소셜 로그인 API&#x20;

<mark style="color:blue;">`GET`</mark> `https://www.eco-log-backend.kro.kr/api/oauth/googletoken?={인증코드}`

#### Path Parameters

| Name                                   | Type   | Description     |
| -------------------------------------- | ------ | --------------- |
| 인증코드<mark style="color:red;">\*</mark> | String | 획득한 OAuth 인증 코드 |

{% tabs %}
{% tab title="200: OK JWT 토큰" %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

## 로그인 중인 사용자 조회 <a href="#loginuser" id="loginuser"></a>

## 현재 서비스에 로그인한 사용자를 조회하는 API

<mark style="color:blue;">`GET`</mark> `https://www.eco-log-backend.kro.kr/api/me`

#### Headers

| Name                                    | Type   | Description                                               |
| --------------------------------------- | ------ | --------------------------------------------------------- |
| key<mark style="color:red;">\*</mark>   | String | `Authorization`으로 고정                                      |
| value<mark style="color:red;">\*</mark> | String | <p>로그인 시 획득한 JWT 토큰<br>- ex. <code>Bearer {토큰}</code></p> |

{% tabs %}
{% tab title="200: OK " %}
{% tabs %}
{% tab title="Schema" %}

{% endtab %}
{% endtabs %}

```json
{
	"userId": 1,
	"nickName": "앞서가는 활동가",
	"email": "mailaddress@naver.com"
}
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="126">항목</th><th width="110.33333333333331">타입</th><th>설명</th></tr></thead><tbody><tr><td>userId</td><td>Integer</td><td>시스템 상에서의 구분을 위한 유저 ID</td></tr><tr><td>nickName</td><td>String</td><td>유저 닉네임</td></tr><tr><td>email</td><td>String</td><td>유저 가입 이메일</td></tr></tbody></table>

## 사용자 탈퇴 <a href="#withdraw" id="withdraw"></a>

## 사용자 탈퇴 API

<mark style="color:red;">`DELETE`</mark> `https://www.eco-log-backend.kro.kr /api/user?platform={플랫폼}`

#### Path Parameters

| Name                                  | Type   | Description                     |
| ------------------------------------- | ------ | ------------------------------- |
| 플랫폼<mark style="color:red;">\*</mark> | String | `kakao`, `naver`, `google` 중 입력 |

#### Headers

| Name                                    | Type   | Description                                               |
| --------------------------------------- | ------ | --------------------------------------------------------- |
| key<mark style="color:red;">\*</mark>   | String | `Authorization`으로 고정                                      |
| value<mark style="color:red;">\*</mark> | String | <p>로그인 시 획득한 JWT 토큰<br>- ex. <code>Bearer {토큰}</code></p> |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

##
