1e51ef7def
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/ - 12 code-workspace-Files - STATUS-*.md - viele M/D/R-Änderungen an bereits getrackten Files - .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
29 lines
769 B
PHP
29 lines
769 B
PHP
<?php
|
|
/**
|
|
* POST /api/auth/refresh
|
|
*
|
|
* Header: Authorization: Bearer <token> (auch wenn fast abgelaufen)
|
|
*
|
|
* Liefert frisches Token mit gleicher Identität und Rolle.
|
|
* Wird vom Telemetry-Client und Cockpit transparent aufgerufen,
|
|
* wenn das Token im Refresh-Fenster (Default 5min vor Ablauf) ist.
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
require_once __DIR__ . '/../../bootstrap.php';
|
|
|
|
v2_validate_method('POST');
|
|
$payload = v2_auth_current();
|
|
if (!$payload) {
|
|
v2_response_error(401, 'unauthorized', 'Token fehlt oder ungültig.');
|
|
}
|
|
|
|
// Neues Token mit identischem Payload (exp/iat werden neu gesetzt)
|
|
unset($payload['exp'], $payload['iat']);
|
|
$newToken = v2_auth_token_create($payload);
|
|
|
|
v2_response_ok([
|
|
'token' => $newToken,
|
|
'expiresIn' => V2_JWT_TTL,
|
|
]);
|