web2print-service/src/Middleware/AuthMiddleware.php
isUnknown b130f5c9d8
Some checks are pending
Deploy / deploy (push) Waiting to run
Reorganize project structure and migrate CI to Forgejo
Move all files from deploy/ to project root, replace .gitlab-ci.yml
with .forgejo/workflows/deploy.yml using Gitea Actions format.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 06:54:52 +01:00

38 lines
818 B
PHP

<?php
namespace Web2Print\Middleware;
class AuthMiddleware
{
private array $config;
public function __construct(array $config)
{
$this->config = $config;
}
public function authenticate(): bool
{
$apiKey = $_SERVER['HTTP_X_API_KEY'] ?? '';
if (empty($apiKey)) {
$this->sendError(401, 'API key missing');
return false;
}
if (!in_array($apiKey, $this->config['api_keys'], true)) {
$this->sendError(403, 'Invalid API key');
return false;
}
return true;
}
private function sendError(int $code, string $message): void
{
http_response_code($code);
header('Content-Type: application/json');
echo json_encode(['error' => $message]);
exit;
}
}