| <?php |
| header('Content-Type: application/json'); |
| require_once '../models/TokenManager.php'; |
|
|
| $tokenManager = new TokenManager(); |
|
|
| |
| $headers = getallheaders(); |
| $auth_header = $headers['Authorization'] ?? ''; |
| $token = ''; |
|
|
| if (preg_match('/Bearer\s+(.*)$/i', $auth_header, $matches)) { |
| $token = $matches[1]; |
| } else { |
| $token = $_GET['token'] ?? ''; |
| } |
|
|
| if (empty($token)) { |
| http_response_code(401); |
| echo json_encode(['error' => 'No token provided']); |
| exit; |
| } |
|
|
| |
| $endpoint = $_SERVER['REQUEST_URI']; |
| $ip_address = $_SERVER['REMOTE_ADDR']; |
| $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; |
| $method = $_SERVER['REQUEST_METHOD']; |
|
|
| |
| $result = $tokenManager->validateAndLogUsage($token, $endpoint, $ip_address, $user_agent, $method); |
|
|
| if ($result['valid']) { |
| echo json_encode([ |
| 'valid' => true, |
| 'user' => $result['username'], |
| 'permissions' => $result['permissions'], |
| 'timestamp' => date('c') |
| ]); |
| } else { |
| http_response_code(401); |
| echo json_encode([ |
| 'valid' => false, |
| 'error' => $result['error'] |
| ]); |
| } |
| ?> |