Proje: Okul Platform · Hub: Okul Platform — Domain
AuthService
app/Services/Controllers/User/AuthService.php
E-posta + Şifre Login (attemptPasswordLogin)
UserRepository::findActiveByEmail()ile akif kullanıcı bul- Hash::check ile şifre kontrol
- Bulunamadıysa →
UserContacttablosundanemailtipinde ara - Her eşleşen kullanıcı için şifre dene
- Başarılı →
createToken(user, AccessTokenNameType::LOGIN)→ Sanctum token
Neden UserContact’ta arama? E-posta hem users.email hem user_contacts tablosunda olabilir.
OTP Login (attemptOtpLogin)
identifier(telefon veya email) üzerinden UserContact’ta kullanıcıları bul- Her kullanıcı için:
a. Master şifre kontrolü:
config('services.master_pass.login')— eğer set edilmişse bypass b. OTP doğrulama:OtpCodeService::verifyOtp() - Başarılı →
createToken(user, AccessTokenNameType::OTP_CODE)
Master Password (Güvenli Amaçlı)
config('services.master_pass.login') — Tüm OTP girişlerini bypass eder.
Muhtemelen destek/test amaçlı kullanılıyor.
loginUsingId (Statik)
AuthService::loginUsingId(int $userId)
// auth()->loginUsingId($userId)
// B2CService::dispatchImportUser() — Kullanıcıyı CIO'ya import etHash Login (attemptHashLogin)
UserSessionHash tablosu üzerinden — okul projesi session’larını API’ya aktarır.
B2C CIO Entegrasyonu
Login olunca B2CService::dispatchImportUser() çağrılır → Kullanıcı CIO’ya gönderilir.
Related
- api-auth-system — Auth endpoint’leri
- api-otp-code-system — OtpCode model ve exceptions