41 lines
967 B
PHP
41 lines
967 B
PHP
<?php
|
|
|
|
namespace App\Core;
|
|
|
|
final class Request
|
|
{
|
|
public static function json(): array
|
|
{
|
|
$body = file_get_contents('php://input') ?: '';
|
|
if ($body === '') {
|
|
return [];
|
|
}
|
|
|
|
$data = json_decode($body, true);
|
|
return is_array($data) ? $data : [];
|
|
}
|
|
|
|
public static function query(string $key, mixed $default = null): mixed
|
|
{
|
|
return $_GET[$key] ?? $default;
|
|
}
|
|
|
|
public static function bearerToken(): ?string
|
|
{
|
|
$header = $_SERVER['HTTP_AUTHORIZATION']
|
|
?? $_SERVER['REDIRECT_HTTP_AUTHORIZATION']
|
|
?? '';
|
|
|
|
if ($header === '' && function_exists('apache_request_headers')) {
|
|
$headers = apache_request_headers();
|
|
$header = $headers['Authorization'] ?? $headers['authorization'] ?? '';
|
|
}
|
|
|
|
if (str_starts_with($header, 'Bearer ')) {
|
|
return substr($header, 7);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|