Files
drivetimeplaner/api/public/index.php
Hermes Agent f68400e282 feat: add refresh token flow for long-lived sessions
- Add RefreshToken model with rotation
- Add POST /auth/refresh endpoint
- Add POST /auth/logout that revokes refresh token
- Login returns JWT (8h) + refresh_token (30 days)
- Refresh rotates token (old is revoked)
- Fix Carbon\Carbon::now() calls instead of now() helper
- Update API docs
2026-05-20 17:57:18 +02:00

37 lines
912 B
PHP

<?php
declare(strict_types=1);
require __DIR__ . '/../vendor/autoload.php';
use App\Config\Container;
use Symfony\Component\Dotenv\Dotenv;
// Load .env file safely
$envFile = __DIR__ . '/../.env';
if (file_exists($envFile)) {
$dotenv = new Dotenv();
$dotenv->load($envFile);
}
// Boot Eloquent BEFORE creating the app
Container::boot();
$container = Container::build();
\Slim\Factory\AppFactory::setContainer($container);
$app = \Slim\Factory\AppFactory::create();
// CORS Middleware
$app->add(new \Tuupola\Middleware\CorsMiddleware([
'origin' => ['https://fahrschultermin.de', 'https://www.fahrschultermin.de'],
'methods' => ['GET', 'POST', 'PATCH', 'DELETE', 'OPTIONS'],
'headers.allow' => ['Content-Type', 'Authorization', 'X-Requested-With'],
'credentials' => true,
'cache.maxage' => 86400,
]));
// Routes
(require __DIR__ . '/../src/Routes/api.php')($app);
$app->run();