Allow email and ID login in Admin auth login.php and bind web device fingerprint

This commit is contained in:
Hamza-Ayed
2026-07-24 23:38:17 +03:00
parent b3126013f5
commit 9e2964d307
2 changed files with 56 additions and 21 deletions
+9 -1
View File
@@ -54,13 +54,21 @@ try {
$stmt->execute([':fp' => $fpHash]);
$admin = $stmt->fetch(PDO::FETCH_ASSOC);
// إذا لم يتم العثور بالبصمة، وتم تمرير رقم الهاتف (تسجيل دخول لأول مرة أو جهاز جديد)
// إذا لم يتم العثور بالبصمة، وتم تمرير اسم المستخدم/الإيميل/الهاتف (تسجيل دخول لأول مرة أو جهاز جديد)
if (!$admin && !empty($phone)) {
// 1. تجربة البحث بالهاتف المشفّر
$encPhoneInput = $encryptionHelper->encryptData($phone);
$stmtPhone = $con->prepare("SELECT * FROM adminUser WHERE phone = :phone LIMIT 1");
$stmtPhone->execute([':phone' => $encPhoneInput]);
$admin = $stmtPhone->fetch(PDO::FETCH_ASSOC);
// 2. إذا لم يجد بالهاتف المشفّر، نجرب بالبريد الإلكتروني أو المعرّف (id / email) أو رقم الهاتف غير المشفّر
if (!$admin) {
$stmtAlt = $con->prepare("SELECT * FROM adminUser WHERE email = :input OR id = :input OR phone = :input LIMIT 1");
$stmtAlt->execute([':input' => $phone]);
$admin = $stmtAlt->fetch(PDO::FETCH_ASSOC);
}
// تأكيد كلمة المرور وتحديث بصمة الجهاز إذا تم إيجاد الحساب
if ($admin && password_verify($password, $admin['password'])) {
$encFpRaw = $encryptionHelper->encryptData($fingerprint);