Proje: Okul B2B App · Hub: Okul B2B App — Conventions
App Lock Pattern (useAppLock)
hooks/useAppLock.ts — Uygulama kilitleme yaşam döngüsü yönetimi.
Konfigürasyon
const DEFAULT_CONFIG: AppLockConfig = {
enabled: false, // Varsayılan: kapalı
lockTimeoutMs: 5 * 60 * 1000, // 5 dakika sonra kilitle
maxFailedAttempts: 5,
requireBiometric: true,
};Background Timer Mantığı
// Background'a alındığında
backgroundTimeRef.current = Date.now();
// Active'e dönüldüğünde
const timeInBackground = Date.now() - backgroundTimeRef.current;
if (timeInBackground > config.lockTimeoutMs) {
isLocked = true;
}5 dakika arka planda kalan uygulama tekrar açıldığında kilit ekranı gösterir.
State
interface AppLockState {
isLocked: boolean,
isInitialized: boolean,
config: AppLockConfig,
failedAttempts: number, // 5 başarısız deneme → geçici kilitleme
lastUnlockTime: number,
}SecureStorage Anahtarları
SECURE_KEYS.APP_LOCK_ENABLED— Kilit etkin miSECURE_KEYS.BIOMETRIC_ENABLED— Biyometrik etkin mi
Related
- biyometrik-guvenlik — BiometricAuth entegrasyonu
- guvenlik-ve-depolama — SECURE_KEYS tanımları