exchangeAuthorizationCode($code); if (($tokenExchange['success'] ?? false) !== true) { http_response_code(502); $message = (string) ($tokenExchange['error'] ?? 'Token-Austausch mit Keycloak fehlgeschlagen.'); } else { /** @var array $tokenPayload */ $tokenPayload = $tokenExchange['data']; $accessToken = (string) ($tokenPayload['access_token'] ?? ''); if ($accessToken === '') { http_response_code(502); $message = 'Keycloak hat kein Access Token geliefert.'; } else { $userInfo = $auth->fetchUserInfo($accessToken); if (($userInfo['success'] ?? false) !== true) { http_response_code(502); $message = (string) ($userInfo['error'] ?? 'Userinfo-Abruf fehlgeschlagen.'); } else { /** @var array $userPayload */ $userPayload = $userInfo['data']; $auth->establishSession($tokenPayload, $userPayload); header('Location: ' . $redirectTarget, true, 302); exit; } } } } ?> <?= htmlspecialchars($title, ENT_QUOTES) ?>