Authentication

API Authentication

Pelajari cara mengautentikasi dengan BotLaunch API menggunakan JWT token. Amankan request Anda dan kelola akses ke resource Anda.

JWT Tokens

Autentikasi stateless yang aman menggunakan JSON Web Tokens.

Masa Berlaku Token

Access token kedaluwarsa dalam 1 jam, refresh token dalam 7 hari.

Refresh Otomatis

Gunakan refresh token untuk mendapatkan access token baru secara mulus.

Alur Autentikasi

Ikuti langkah-langkah ini untuk mengautentikasi dan membuat request API yang aman.

1

Login

Dapatkan token dengan kredensial

2

Simpan Token

Simpan kedua token dengan aman

3

Buat Request

Sertakan token di header

4

Refresh

Dapatkan token baru saat kedaluwarsa

Authentication Endpoints

POST/api/auth/login

Autentikasi pengguna dan terima access serta refresh token.

Request Body

FieldTypeRequiredDescription
emailstringUser's email address
passwordstringUser's password

Example Request

curl -X POST "https://api.botlaunch.io/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "your-secure-password"
  }'
bash

Example Response

{
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "expiresIn": 3600,
    "user": {
      "id": "usr_abc123",
      "email": "user@example.com",
      "role": "CLIENT_OWNER"
    }
  },
  "message": "Login successful"
}
json
POST/api/auth/register

Buat akun pengguna dan organisasi baru.

Request Body

FieldTypeRequiredDescription
emailstringValid email address
passwordstringMin 8 chars, 1 uppercase, 1 number
namestringUser's full name
organizationNamestringOptionalOrganization name

Example Request

curl -X POST "https://api.botlaunch.io/api/auth/register" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "newuser@example.com",
    "password": "SecureP@ssw0rd!",
    "name": "John Doe",
    "organizationName": "My Company"
  }'
bash
POST/api/auth/refresh

Tukarkan refresh token dengan access token baru.

Example Request

curl -X POST "https://api.botlaunch.io/api/auth/refresh" \
  -H "Content-Type: application/json" \
  -d '{
    "refreshToken": "your-refresh-token"
  }'
bash

Rotasi Token

Setiap request refresh mengembalikan refresh token baru. Simpan dan gunakan refresh token terbaru untuk request berikutnya.

POST/api/auth/logout

Batalkan sesi saat ini dan cabut token.

Example Request

curl -X POST "https://api.botlaunch.io/api/auth/logout" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
bash

Menggunakan Access Token

Sertakan access token Anda di header Authorization untuk semua request API.

// Include the access token in all API requests
const response = await fetch("https://api.botlaunch.io/api/bots", {
  headers: {
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIs...",
    "x-organization-id": "org_xyz789",
    "Content-Type": "application/json"
  }
});
javascript

Header yang Diperlukan

AuthorizationBearer token
x-organization-idOrganization ID
Content-Typeapplication/json

Praktik Keamanan Terbaik

  • Simpan token dengan aman (jangan pernah di localStorage untuk web)
  • Gunakan HTTPS untuk semua request API
  • Implementasikan refresh token sebelum kedaluwarsa
  • Cabut token saat logout atau peristiwa keamanan

Error Autentikasi

Error autentikasi umum dan cara menanganinya.

StatusErrorDescriptionSolution
401UnauthorizedMissing or invalid tokenCheck Authorization header
401Token ExpiredAccess token has expiredUse refresh token to get new access token
403ForbiddenInsufficient permissionsCheck user role and organization access
429Too Many RequestsLogin rate limit exceededWait and retry after cooldown
400Invalid CredentialsWrong email or passwordVerify credentials and try again