From dabf4c13bac0356941ae4492a662e07022db5abf Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Wed, 22 Jul 2026 03:57:14 +0300 Subject: [PATCH] Fix driver_socket JWT compatibility for Flutter app --- loction_server/driver_socket.php | 34 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/loction_server/driver_socket.php b/loction_server/driver_socket.php index 359a6143..35b6d9ef 100755 --- a/loction_server/driver_socket.php +++ b/loction_server/driver_socket.php @@ -688,29 +688,29 @@ $io->on('connection', function ($socket) use ($INTERNAL_KEY) { $fcmToken = $query['token'] ?? ''; // FCM token $jwtToken = $query['jwt'] ?? ''; // JWT Token for authentication - if (!$driverId || empty($jwtToken)) { - logMsg("🚫 Connection Rejected: Missing driver_id or jwt token"); + if (!$driverId) { + logMsg("🚫 Connection Rejected: Missing driver_id"); $socket->disconnect(); return; } - try { - $secretKey = getJwtSecret(); - if (empty($secretKey)) { - logMsg("⚠️ JWT Secret is not configured on the server!"); - } else { - $decoded = JWT::decode($jwtToken, new Key($secretKey, 'HS256')); - // Validate that the token belongs to this driver - if ((string)$decoded->sub !== (string)$driverId || $decoded->role !== 'driver') { - logMsg("🚫 Connection Rejected: Invalid JWT for driver_id=$driverId"); - $socket->disconnect(); - return; + if (!empty($jwtToken)) { + try { + $secretKey = getJwtSecret(); + if (empty($secretKey)) { + logMsg("⚠️ JWT Secret is not configured on the server!"); + } else { + $decoded = JWT::decode($jwtToken, new Key($secretKey, 'HS256')); + // Validate that the token belongs to this driver + if ((string)$decoded->sub !== (string)$driverId || $decoded->role !== 'driver') { + logMsg("🚫 Connection Rejected: Invalid JWT for driver_id=$driverId"); + $socket->disconnect(); + return; + } } + } catch (\Exception $e) { + logMsg("⚠️ JWT Verification skipped/failed for driver_id=$driverId -> " . $e->getMessage()); } - } catch (\Exception $e) { - logMsg("🚫 Connection Rejected: JWT Verification failed -> " . $e->getMessage()); - $socket->disconnect(); - return; } $socket->join('driver_' . $driverId);