Proje: OkulUp · Hub: OkulUp — Domain

Auth Akışı

Backend

Laravel Sanctum, Bearer Token tabanlı.

Giriş Yöntemleri

1. Email + Şifre

POST /api/login{ email, password, device_name } Login sonrası getMe() ile permissions fetch edilir.

2. Social Auth (Google / Apple)

POST /api/auth/social{ provider, token, device_name, name? } Response’da is_new_user: boolean — yeni kayıt mı, giriş mi olduğunu bildirir. Analytics’e social_register_success veya social_login_success event gönderilir.

Apple Sign In: expo-apple-authentication Web’de Google OAuth: expo-auth-session, expo-web-browser

3. Register

POST /api/register → kullanıcı bilgileri Registration sonrası da getMe() ile permissions alınıyor.

Token Yönetimi

Token → Zustand authSlice → AsyncStorage persist Axios default header → setAuthToken(token)

Rehydrate (uygulama açılışı):

  • onRehydrateStorage → token’ı Axios’a set eder
  • hydrate() hook’u da çağrılır (double safety)

Logout

  1. Push token unregister (unregisterToken()) — logout’u bloklamamak için try/catch
  2. POST /api/logout
  3. clearAuth() — Zustand store sıfırla
  4. Sentry user null
  5. Notification state reset

Me Endpoint

GET /api/me{ user: User, permissions: PermissionMap } Her login + register sonrası çağrılır. Ayrıca refreshUser() ile manuel refresh mümkün.

Yeni kullanıcılar için app/(auth)/consent.tsx — KVKK/gizlilik onayı. consentSlice ile persist ediliyor.