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
| Token | Masa Berlaku | Fungsi |
|---|---|---|
| Access Token | 15 menit | Autentikasi semua request |
| Refresh Token | 30 hari | Mendapatkan 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:
| Metode | Endpoint | Keterangan |
|---|---|---|
| Email + Password | POST /auth/login | Login dengan credentials |
| Register | POST /auth/register | Auto-register, token langsung diberikan |
| Google OAuth | POST /auth/google | Login/register via Google |
| Apple Sign In | POST /auth/apple | Login/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-emailPOST /auth/registerPOST /auth/verify-emailPOST /auth/resend-verificationPOST /auth/forgot-passwordGET /auth/reset-password(verify token)POST /auth/reset-passwordPOST /auth/report-issueGET /onboarding/optionsGET /locations
Info: Lihat API Reference — Auth untuk detail setiap endpoint autentikasi.
Last updated on