From 10f1154cc7d756910adc531a578d4836bb39584d Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Sat, 25 Jul 2026 00:30:14 +0300 Subject: [PATCH] Update adminUser fingerprint and fingerprint_hash in database upon successful OTP verification --- backend/Admin/auth/verify_login.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/backend/Admin/auth/verify_login.php b/backend/Admin/auth/verify_login.php index 65a86784..45f883e1 100644 --- a/backend/Admin/auth/verify_login.php +++ b/backend/Admin/auth/verify_login.php @@ -56,7 +56,17 @@ try { // حذف الرمز بعد استخدامه لمرة واحدة (باستخدام الرقم المشفر) $con->prepare("DELETE FROM token_verification_admin WHERE phone_number = ?")->execute([$encryptedPhone]); - // 4. إصدار التوكن النهائي + // 4. تحديث وتأكيد بصمة المتصفح/الجهاز الحالية للمسؤول في قاعدة البيانات بعد التحقق الناجح من OTP + $encFpRaw = ($encryptionHelper && !empty($fingerprint)) ? $encryptionHelper->encryptData($fingerprint) : $fingerprint; + $updateFpStmt = $con->prepare("UPDATE adminUser SET fingerprint = :fp_raw, fingerprint_hash = :fp WHERE id = :id"); + $updateFpStmt->execute([ + ':fp_raw' => $encFpRaw, + ':fp' => $fpHash, + ':id' => $admin['id'] + ]); + $admin['fingerprint_hash'] = $fpHash; + + // 5. إصدار التوكن النهائي $jwtService = new JwtService($redis); $role = $admin['role'] ?? 'admin'; @@ -71,7 +81,9 @@ try { $jwt = $jwtService->generateAccessToken($admin['id'], $role, $audience, $fingerprint); // فك تشفير البيانات للعرض - $admin['name'] = $encryptionHelper->decryptData($admin['name']) ?: $admin['name']; + if ($encryptionHelper && !empty($admin['name'])) { + $admin['name'] = $encryptionHelper->decryptData($admin['name']) ?: $admin['name']; + } unset($admin['password']); printSuccess([