# Аутентификация

MoreLogin использует разные методы аутентификации для двух типов API.

## Локальная аутентификация API

Локальный API работает на `http://127.0.0.1:40000` и доступен только с локального компьютера.

### Режим по умолчанию (без аутентификации)

По умолчанию локальный API не требует аутентификации. Вы можете сделать запрос напрямую:

```bash
curl -X POST http://127.0.0.1:40000/api/env/page \
  -H "Content-Type: application/json" \
  -d '{
    "pageNo": 1,
    "pageSize": 10
  }'
```

### Включение аутентификации

Для повышения безопасности вы можете включить аутентификацию Local API в клиенте MoreLogin:

1. Откройте клиент MoreLogin
2. Перейдите в **Настройки** → **API и MCP**.
3. Включить **Аутентификацию локального API**
4. Скопируйте сгенерированный токен авторизации


![Включить локальную аутентификацию API](/assets/image.590455fe8c04c7aec45454ddba2524af46ee8128e15fbef43221c071f4863f91.4976dbe0.png)

После включения включите заголовок `Authorization` во все запросы:

```bash
curl -X POST http://127.0.0.1:40000/api/env/page \
  -H "Content-Type: application/json" \
  -H "Authorization: YOUR_AUTH_TOKEN" \
  -d '{
    "pageNo": 1,
    "pageSize": 10
  }'
```

> **Примечание по безопасности**. Локальный API доступен только на `localhost`. Доступ к нему удаленный невозможен.


## Аутентификация открытого API (OAuth2)

Open API использует поток учетных данных клиента OAuth2 для аутентификации запросов.

> Конечная точка открытого сервера API: `https://api.morelogin.com`


### Шаг 1. Получите идентификатор API и ключ API

1. Откройте клиент MoreLogin
2. Перейдите в **Настройки** → **API и MCP**.
3. Скопируйте **Идентификатор API** и **Ключ API**.


Идентификатор API и ключ
### Шаг 2. Получите токен доступа

Обменяйте свой идентификатор API и ключ API на токен доступа:

```bash
curl -X POST https://api.morelogin.com/oauth2/token \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "YOUR_API_ID",
    "client_secret": "YOUR_API_KEY",
    "grant_type": "client_credentials"
  }'
```

**Пример ответа:**

```json
{
    "code": 0,
    "msg": null,
    "data": {
        "scope": "cloudphone",
        "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOi...",
        "token_type": "Bearer",
        "expires_in": 3600,
        "client_metadata": {
            "name": "Example Team"
        }
    },
    "requestId": "4b727b1d53a445d0a46389465b562360"
}
```

### Шаг 3. Используйте токен доступа

Включите токен доступа в заголовок `Authorization` для всех запросов Open API:

```bash
curl -X POST https://api.morelogin.com/cloudphone/app/page \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "pageNum": 1,
    "pageSize": 10
  }'
```

> **Примечание**. Срок действия токенов доступа истекает через **3600 секунд** (1 час). Запросите новый токен, когда истечет срок действия текущего.


## Сравнение аутентификации

| Особенность | Локальный API | Открытый API |
|  --- | --- | --- |
| **Метод** | Статический токен (необязательно) | Токен доступа OAuth2 |
| **Срок действия токена** | Постоянный (до регенерации) | 1 час |
| **Где взять** | ПодробнееНастройки клиента входа в систему | Идентификатор API Exchange + ключ |
| **Формат заголовка** | `Authorization: TOKEN` | `Authorization: Bearer TOKEN` |
| **Обязательно** | Опционально (можно отключить) | Всегда требуется |