# Xác thực

MoreLogin sử dụng các phương thức xác thực khác nhau cho hai loại API của nó.

## Xác thực API cục bộ

API cục bộ chạy trên `http://127.0.0.1:40000` và chỉ có thể truy cập được từ máy cục bộ.

### Chế độ mặc định (Không xác thực)

Theo mặc định, API cục bộ không yêu cầu xác thực. Bạn có thể thực hiện yêu cầu trực tiếp:

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

### Kích hoạt xác thực

Để tăng cường bảo mật, bạn có thể bật xác thực API cục bộ trong ứng dụng khách MoreLogin:

1. Mở ứng dụng khách MoreLogin
2. Điều hướng đến **Cài đặt** → **API & MCP**
3. Bật **Xác thực API cục bộ**
4. Sao chép mã thông báo ủy quyền đã tạo


![Bật xác thực API cục bộ](/assets/image.590455fe8c04c7aec45454ddba2524af46ee8128e15fbef43221c071f4863f91.b19fd103.png)

Sau khi bật, hãy bao gồm tiêu đề `Authorization` trong tất cả các yêu cầu:

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

> **Lưu ý bảo mật**: API cục bộ chỉ khả dụng trên `localhost`. Nó không thể được truy cập từ xa.


## Xác thực API mở (OAuth2)

API mở sử dụng luồng thông tin xác thực ứng dụng khách OAuth2 để xác thực các yêu cầu.

> Điểm cuối máy chủ API mở: `https://api.morelogin.com`


### Bước 1: Nhận ID API và khóa API

1. Mở ứng dụng khách MoreLogin
2. Điều hướng đến **Cài đặt** → **API & MCP**
3. Sao chép **ID API** và **Khóa API**


ID và khóa API
### Bước 2: Nhận mã thông báo truy cập

Trao đổi ID API và Khóa API của bạn để lấy mã thông báo truy cập:

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

**Phản hồi mẫu:**

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

### Bước 3: Sử dụng mã thông báo truy cập

Bao gồm mã thông báo truy cập trong tiêu đề `Authorization` cho tất cả yêu cầu API mở:

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

> **Lưu ý**: Mã truy cập hết hạn sau **3600 giây** (1 giờ). Yêu cầu mã thông báo mới khi mã thông báo hiện tại hết hạn.


## So sánh xác thực

| tính năng | API cục bộ | API mở |
|  --- | --- | --- |
| **Phương pháp** | Mã thông báo tĩnh (tùy chọn) | Mã thông báo truy cập OAuth2 |
| **Tuổi thọ của mã thông báo** | Vĩnh viễn (cho đến khi được tái sinh) | 1 giờ |
| **Nhận ở đâu** | ThêmCài đặt ứng dụng khách Đăng nhập | ID API trao đổi + Khóa |
| **Định dạng tiêu đề** | `Authorization: TOKEN` | `Authorization: Bearer TOKEN` |
| **Bắt buộc** | Tùy chọn (có thể bị vô hiệu hóa) | Luôn được yêu cầu |