Proje: OkulUp API · Hub: OkulUp API — Conventions

OkulUp API — API Authentication Pattern

Sanctum Token-Based Auth

Laravel Sanctum v4 ile Bearer token kullanılır. Cookie-based session YOK, tamamen stateless.

Token Yaşam Döngüsü

register/login → createToken(device_name) → plainTextToken döner
refresh-token  → currentToken silinir, yeni token oluşturulur
logout         → currentAccessToken()->delete()

Device Name

Token oluştururken device_name isteğe bağlı parametre. Default: 'api-token'.
Mobil istemciler cihaz adını gönderir (ör: “iPhone 15”).

/me Response

{
  "user": { ...UserResource },
  "permissions": { "dashboard_teacher": true, "assignments_submit": false, ... }
}

Parent rolündeyse children ilişkisi de load edilir.

Seeder Kullanıcıları (Test/Demo)

  • Email pattern: demo.*@okul.com.tr veya <rol>@okul.com.tr
  • Şifre: password
  • Örnek: admin@okul.com.tr, teacher@okul.com.tr, parent@okul.com.tr

Middleware Stack (Auth Sonrası)

auth:sanctum → throttle:api → [feature:xxx (opsiyonel)]

Global middleware (tüm API):

  • SecurityHeaders — güvenlik header’ları ekler
  • SanitizeInput — XSS temizliği
  • LogApiRequests — her request’i loglar (başarılı: info, 4xx: warning, 5xx: error)

LogApiRequests

Sensitive fields (password, token vb.) loglanmadan önce *** ile maskelenir.
Response time duration_ms olarak loglanır.

KVKK — Hesap Silme

DELETE /account → password confirm + soft delete + tüm tokenlar silindi.