Skip to Content
MemulaiAutentikasi

Autentikasi

Fumai Mobile API menggunakan JWT Bearer Token untuk autentikasi. Setiap request ke endpoint yang memerlukan auth harus menyertakan token di header Authorization.

Token Architecture

TokenMasa BerlakuFungsi
Access Token15 menitAutentikasi semua request
Refresh Token30 hariMendapatkan access token baru

Menggunakan Token

Sertakan access token di header setiap request:

curl -X GET https://fumai.app/api/mobile/v1/auth/me \ -H "Authorization: Bearer eyJhbGciOi..."
const res = await fetch('https://fumai.app/api/mobile/v1/auth/me', { headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, })

Mendapatkan Token

Token didapat melalui salah satu endpoint berikut:

MetodeEndpointKeterangan
Email + PasswordPOST /auth/loginLogin dengan credentials
RegisterPOST /auth/registerAuto-register, token langsung diberikan
Google OAuthPOST /auth/googleLogin/register via Google
Apple Sign InPOST /auth/appleLogin/register via Apple

Semua endpoint di atas mengembalikan accessToken dan refreshToken di top-level response.

Refresh Token

Saat access token kedaluwarsa (15 menit), gunakan refresh token untuk mendapatkan token baru:

curl -X POST https://fumai.app/api/mobile/v1/auth/refresh \ -H "Content-Type: application/json" \ -d '{ "refreshToken": "eyJhbGciOi..." }'
const res = await fetch('https://fumai.app/api/mobile/v1/auth/refresh', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ refreshToken }), }) const { accessToken, refreshToken: newRefreshToken } = await res.json()

Peringatan: Refresh token bersifat one-time use — setelah dipakai, token lama otomatis di-revoke dan Anda mendapat token baru.

Token Expired Flow

Request → 401 INVALID_ACCESS_TOKEN POST /auth/refresh (dengan refreshToken) Berhasil → Simpan token baru → Retry request Gagal → Redirect ke login (refresh token juga expired)

Endpoint Tanpa Auth

Beberapa endpoint tidak memerlukan authentication:

  • POST /auth/check-email
  • POST /auth/register
  • POST /auth/verify-email
  • POST /auth/resend-verification
  • POST /auth/forgot-password
  • GET /auth/reset-password (verify token)
  • POST /auth/reset-password
  • POST /auth/report-issue
  • GET /onboarding/options
  • GET /locations

Info: Lihat API Reference — Auth untuk detail setiap endpoint autentikasi.

Last updated on