Initial commit
This commit is contained in:
commit
2b89c4acd9
15 changed files with 3180 additions and 0 deletions
38
deploy/src/Middleware/AuthMiddleware.php
Normal file
38
deploy/src/Middleware/AuthMiddleware.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?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;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue