Ryanhub - file viewer
filename: html/api/lib/auth.php
branch: main
back to repo
<?php
require_once __DIR__ . '/db.php';

function require_api_key(): void {
    $hdr = $_SERVER['HTTP_AUTHORIZATION'] ?? $_SERVER['REDIRECT_HTTP_AUTHORIZATION'] ?? '';
    if (!$hdr && function_exists('apache_request_headers')) {
        $req = apache_request_headers();
        $hdr = $req['Authorization'] ?? $req['authorization'] ?? '';
    }
    if (!preg_match('/Bearer\s+(.+)/', $hdr, $m)) {
        http_response_code(401); exit;
    }

    $hash = hash('sha256', $m[1]);
    global $pdo;

    $q = $pdo->prepare("SELECT 1 FROM api_keys WHERE key_hash=? AND revoked=0");
    $q->execute([$hash]);
    if (!$q->fetch()) {
        http_response_code(403); exit;
    }
}