Client API cho Mobile App Integration
Base URL
POST https://api.authtool.app/api/public/v1/client/
Flow tích hợp
1. Kiểm tra Package (Tùy chọn)
2. Kiểm tra Device (Bắt buộc)
3. Login với Key (Khi cần thiết)
Cấu trúc Request chung
Tất cả API đều yêu cầu:
{
"token": "string",
"data": "string" // Dữ liệu được mã hóa AES
}
API Reference
1. Check Package
Endpoint: POST /package
Mô tả: Kiểm tra thông tin package, version, trạng thái hoạt động
Request Body:
{
"token": "your_package_token_here"
}
Response Success (200):
{
"data": "encrypted_data"
}
Dữ liệu sau khi decrypt:
{
"status": 1, // 1: Running, 0: Maintenance
"name": "Package Name",
"version": "1.0.0",
"updateNote": "Update notes",
"downloadUpdateLink": "https://...",
"contactUrl": "https://...",
"isNeedKey": true, // Có cần authentication không
"requestTime": 1234567890
}
Error Responses:
400
- Package token invalid403
- Package stopped by admin404
- Package not found
2. Check Device (Bắt buộc)
Endpoint: POST /check
Mô tả: Kiểm tra thiết bị có license đã tồn tại hay chưa. API này phải được gọi đầu tiên khi user mở app.
Request Body:
{
"token": "your_package_token_here",
"data": "encrypted_device_info"
}
Dữ liệu trước khi encrypt:
{
"uid": "unique_device_id", // UDID hoặc unique identifier
"clientOS": "iOS 17.0",
"clientModel": "iPhone 15 Pro",
"clientOSVersion": "17.0.1"
}
Response Success (200):
{
"data": "encrypted_data"
}
Dữ liệu sau khi decrypt:
{
"status": 1, // 1: Active, 0: Inactive
"expiredAt": "2024-12-31T23:59:59.000Z",
"key": "user_key_value",
"requestTime": 1234567890,
"isExpired": false
}
Error Responses:
400
- UID is required404
- Device not found (cần gọi API login)
3. Login với Key
Endpoint: POST /login
Mô tả: Đăng nhập bằng key để kích hoạt license cho thiết bị
Request Body:
{
"token": "your_package_token_here",
"data": "encrypted_login_data"
}
Dữ liệu trước khi encrypt:
{
"uid": "unique_device_id",
"key": "user_input_key",
"clientOS": "iOS 17.0",
"clientModel": "iPhone 15 Pro",
"clientOSVersion": "17.0.1"
}
Response Success (200):
{
"data": "encrypted_data"
}
Dữ liệu sau khi decrypt:
{
"status": 1, // 1: Success
"expiredAt": "2024-12-31T23:59:59.000Z",
"key": "activated_key_value",
"requestTime": 1234567890,
"message": "Login successful"
}
Error Responses:
400
- Key is required / Key disabled404
- Key not found409
- Key đã đạt giới hạn thiết bị
Security Notes
- Package Token: Lưu trữ an toàn, không expose trong code
- AES Key: Nhận từ server khi setup package
- Device UID: Sử dụng identifier duy nhất để tối ưu tránh phải reset lại key
- Data Encryption: Tất cả dữ liệu phải được mã hóa