API Autentikasi
Pelajari cara melakukan autentikasi dengan SmallPict API menggunakan alur OTP tanpa kata sandi kami.
SmallPict API menggunakan alur autentikasi tanpa kata sandi (passwordless) yang aman berbasis One-Time Password (OTP). Panduan ini menjelaskan cara meminta API key secara terprogram untuk integrasi pihak ketiga atau skrip kustom.
Semua request API harus dilakukan melalui HTTPS untuk memastikan privasi data.
Base URL
Semua endpoint yang didokumentasikan di sini bersifat relatif terhadap:
https://api.tuxnoob.com/v1
[!IMPORTANT] API autentikasi internal yang digunakan oleh staf dan dashboard web SmallPict memiliki akses yang sangat dibatasi (allowlisted) dan tidak didokumentasikan untuk publik di sini. Jangan mencoba menggunakan rute
/internal/untuk integrasi plugin.
1. Request OTP
Untuk memulai alur autentikasi, Anda harus meminta OTP untuk dikirimkan ke alamat email pengguna.
Endpoint: POST /plugin/auth/request-otp
Request Body (JSON)
{
"email": "user@example.com",
"site_url": "https://example.com"
}
email(wajib): Alamat email tujuan pengiriman OTP.site_url(opsional): URL situs yang meminta akses.
Response
{
"status": "success",
"message": "OTP sent successfully",
"expires_in": 900
}
2. Verify OTP
Setelah pengguna menerima kode 6-digit melalui email, kirimkan kode tersebut ke endpoint verifikasi untuk menerima API Key.
Endpoint: POST /plugin/auth/verify-otp
Request Body (JSON)
{
"email": "user@example.com",
"otp": "123456",
"site_url": "https://example.com"
}
email(wajib): Alamat email yang digunakan pada langkah sebelumnya.otp(wajib): Kode OTP 6-digit.
Response
Setelah verifikasi berhasil, API akan memberikan API key dan secret key baru. Simpan key ini dengan aman.
{
"status": "success",
"api_key": "sp_live_xxxxxxxxxxxxxxxxx",
"secret_key": "sp_sec_xxxxxxxxxxxxxxxxx",
"message": "Authentication successful"
}
Mengautentikasi Request
Setelah Anda mendapatkan api_key dan secret_key, Anda harus menyertakannya di header pada setiap request API (seperti pemrosesan gambar) menggunakan metode HMAC-SHA256 signature demi keamanan.
Kirimkan header berikut pada setiap request:
x-api-key: sp_live_xxxxxxxxxxxxxxxxx
x-timestamp: 1672531200
x-signature: <hmac-sha256-signature>
Pembuatan Signature
x-signature adalah hasil enkripsi HMAC-SHA256 dalam bentuk string hex.
timestamp= Unix timestamp saat inibody_hash= SHA256 hash dari JSON payload (ataue3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855jika payload kosong)string_to_sign=METHOD\nENDPOINT\nTIMESTAMP\nBODY_HASHsignature=HMAC_SHA256(secret_key, string_to_sign)
Jika signature tidak ada atau tidak valid, API akan membalas dengan status 401 Unauthorized.