# Autenticação

MoreLogin usa diferentes métodos de autenticação para seus dois tipos de API.

## Autenticação de API local

A API local é executada em `http://127.0.0.1:40000` e só pode ser acessada na máquina local.

### Modo padrão (sem autenticação)

Por padrão, a API Local não requer autenticação. Você pode fazer solicitações diretamente:

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

### Habilitando Autenticação

Para maior segurança, você pode habilitar a autenticação de API local no cliente MoreLogin:

1. Abra o cliente MoreLogin
2. Navegue até **Configurações** → **API e MCP**
3. Ativar **Autenticação de API Local**
4. Copie o token de autorização gerado


![Ativar autenticação de API local](/assets/image.590455fe8c04c7aec45454ddba2524af46ee8128e15fbef43221c071f4863f91.c99b4305.png)

Após habilitar, inclua o cabeçalho `Authorization` em todas as solicitações:

```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
  }'
```

> **Observação de segurança**: a API local está disponível apenas em `localhost`. Não pode ser acessado remotamente.


## Autenticação de API aberta (OAuth2)

A Open API usa o fluxo de credenciais do cliente OAuth2 para autenticar solicitações.

> Endpoint do servidor API aberto: `https://api.morelogin.com`


### Etapa 1: Obtenha o ID da API e a chave da API

1. Abra o cliente MoreLogin
2. Navegue até **Configurações** → **API e MCP**
3. Copie o **ID da API** e a **Chave da API**


ID e chave da API
### Etapa 2: Obtenha o token de acesso

Troque seu ID de API e sua chave de API por um token de acesso:

```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"
  }'
```

**Exemplo de resposta:**

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

### Etapa 3: usar token de acesso

Inclua o token de acesso no cabeçalho `Authorization` para todas as solicitações da 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
  }'
```

> **Observação**: os tokens de acesso expiram após **3.600 segundos** (1 hora). Solicite um novo token quando o atual expirar.


## Comparação de autenticação

| Recurso | API local | API aberta |
|  --- | --- | --- |
| **Método** | Token estático (opcional) | Token de acesso OAuth2 |
| **Vida útil do token** | Permanente (até regenerado) | 1 hora |
| **Onde conseguir** | MaisConfigurações do cliente Login | ID + chave da API do Exchange |
| **Formato do cabeçalho** | `Authorization: TOKEN` | `Authorization: Bearer TOKEN` |
| **Obrigatório** | Opcional (pode ser desativado) | Sempre obrigatório |