Update: 2026-07-22 00:32:07

This commit is contained in:
Hamza-Ayed
2026-07-22 00:32:07 +03:00
parent 2b302db1dd
commit 17abdada10
2 changed files with 50 additions and 10 deletions
+44 -8
View File
@@ -1,14 +1,21 @@
<?php
/**
* generate_mock_data.php
* Standalone JWT generator — ZERO external dependencies.
* Generates HS256 JWT matching Siro JwtService verification logic.
* Standalone JWT & Price Token generator for Stress Test.
*/
error_reporting(E_ALL);
ini_set('display_errors', '0');
// ── Load .env ──
// Load bootstrap if available for EncryptionHelper
$bootstrapPath = dirname(__DIR__) . '/backend/core/bootstrap.php';
if (file_exists($bootstrapPath)) {
try {
require_once $bootstrapPath;
} catch (Throwable $e) {}
}
// Fallback .env loader
$loadedFiles = [];
function loadEnvFile(string $path): void {
global $loadedFiles;
@@ -30,7 +37,6 @@ function loadEnvFile(string $path): void {
loadEnvFile(dirname(__DIR__) . '/docker/.env');
loadEnvFile(dirname(__DIR__) . '/backend/.env');
loadEnvFile('/home/location/env/.env');
function getJwtSecret(): string {
$keyPath = getenv('JWT_SECRET_KEY_PATH');
@@ -86,9 +92,39 @@ if ($fpInToken) {
$jwt = generate_jwt($secret, $payload);
// Generate encrypted price token for passenger
$priceToken = '';
if ($role === 'passenger') {
$tokenData = json_encode([
'passenger_id' => (string)$userId,
'start_location' => '31.95,35.91',
'end_location' => '31.96,35.92',
'price' => '5',
'expires' => time() + 3600
]);
if (isset($GLOBALS['encryptionHelper']) && is_object($GLOBALS['encryptionHelper'])) {
$priceToken = $GLOBALS['encryptionHelper']->encryptData($tokenData);
} elseif (isset($encryptionHelper) && is_object($encryptionHelper)) {
$priceToken = $encryptionHelper->encryptData($tokenData);
} else {
// Pure PHP Encryption fallback if EncryptionHelper not loaded
try {
$encKey = getenv('ENCRYPTION_KEY') ?: $secret;
$keyBytes = substr(hash('sha256', $encKey, true), 0, 32);
$iv = random_bytes(12);
$tag = '';
$ciphertext = openssl_encrypt($tokenData, 'aes-256-gcm', $keyBytes, OPENSSL_RAW_DATA, $iv, $tag);
$priceToken = 'GCM:' . base64_encode($iv) . ':' . base64_encode($ciphertext . $tag);
} catch (Throwable $e) {
$priceToken = 'dummy';
}
}
}
echo json_encode([
'user_id' => $userId,
'role' => $role,
'jwt' => $jwt,
'fp' => $fpHeader
'user_id' => $userId,
'role' => $role,
'jwt' => $jwt,
'fp' => $fpHeader,
'price_token' => $priceToken
]);