Update: 2026-07-22 00:32:07
This commit is contained in:
@@ -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
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user