prepare("SELECT * FROM adminUser WHERE fingerprint_hash = :fp LIMIT 1"); $stmt->execute([':fp' => $fpHash]); $admin = $stmt->fetch(PDO::FETCH_ASSOC); if ($admin) { // التحقق من كلمة المرور الهاش if (password_verify($password, $admin['password'])) { // فك تشفير الاسم للعرض في التطبيق $admin['name'] = $encryptionHelper->decryptData($admin['name']) ?: $admin['name']; unset($admin['password']); $jwtService = new JwtService($redis); $role = $admin['role'] ?? 'admin'; // توليد توكن الدخول مع ربطه ببصمة الجهاز $jwt = $jwtService->generateAccessToken($admin['id'], $role, $audience, $fingerprint); printSuccess([ "message" => "Login successful", "admin" => $admin, "jwt" => $jwt, "expires_in" => 3600 ]); } else { jsonError("كلمة المرور غير صحيحة."); } } else { jsonError("الجهاز غير مسجل كمشرف."); } } catch (Exception $e) { error_log("[Admin Login Error] " . $e->getMessage()); jsonError("خطأ في السيرفر: " . $e->getMessage()); }