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 ederhydrate()hook’u da çağrılır (double safety)
Logout
- Push token unregister (
unregisterToken()) — logout’u bloklamamak için try/catch POST /api/logoutclearAuth()— Zustand store sıfırla- Sentry user null
- 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.
Consent Flow
Yeni kullanıcılar için app/(auth)/consent.tsx — KVKK/gizlilik onayı.
consentSlice ile persist ediliyor.
Related
- user-roles — giriş sonrası rol belirleme
- school-enrollment-flow — school_id=null durumu
- state-management — authSlice detayları