tstat_be/app/Helpers/jwt_helper.php

38 lines
960 B
PHP

<?php
use Firebase\JWT\JWT;
use Firebase\JWT\Key;
if (!function_exists('generateJWT')) {
function generateJWT($userData)
{
$key = getenv('JWT_SECRET'); // Load secret from .env
$issuedAt = time();
$expire = $issuedAt + 14400; // Token valid for 4 hour
$payload = [
'iss' => base_url(), // Issuer
'iat' => $issuedAt, // Issued at
'exp' => $expire, // Expiration time
'sub' => $userData['user_id'], // Subject (User ID)
'data' => $userData // Additional user data
];
return JWT::encode($payload, $key, 'HS256');
}
}
if (!function_exists('validateJWT')) {
function validateJWT($token)
{
$key = getenv('JWT_SECRET');
try {
$decoded = JWT::decode($token, new Key($key, 'HS256'));
return (array) $decoded;
} catch (\Exception $e) {
return null;
}
}
}