Bug #85
offen[Bugsink] TYPO3\CMS\Core\Error\Http\UnauthorizedException: No valid auth token given.
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/6a923dff-90ff-4509-96c5-34efb8913f1f/event/last/
Typ: NEW issue
Projekt: www-rietberg-de
Bugsink Alert
TYPO3\CMS\Core\Error\Http\UnauthorizedException: No valid auth token given.
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers: UnauthorizedException: No valid auth token given¶
1. Ursache identifizieren¶
Der Fehler tritt auf, wenn TYPO3 keine gültige Authentifizierung (Token) für eine geschützte Anfrage erhält. Die Stacktrace zeigt, dass die Exception in der Middleware-Pipeline ausgelöst wird, bevor die eigentliche Anfrageverarbeitung beginnt.
Konkrete Ursache:
-
Middleware
VerifyHostHeader(Zeile 55) oder eine vorherige Middleware prüft auf einen gültigen Auth-Token (z. B. für API-Anfragen, Backend-Logins oder CSRF-Schutz). - Der Token fehlt entweder:
- Im HTTP-Header (z. B.
X-AUTH-TOKEN,Authorization: Bearer ...). - Im Request-Parameter (z. B.
?token=...). - In der Session (falls TYPO3 einen Session-basierten Token erwartet).
- Im HTTP-Header (z. B.
- Mögliche Szenarien:
- API-Anfrage ohne gültigen Token (z. B. REST-API, Extbase-Endpunkt).
- Backend-Login mit fehlendem/invalidem CSRF-Token.
- Middleware-Konfiguration erzwingt Token-Prüfung, obwohl sie nicht benötigt wird.
- Caching-Problem: Ein veralteter Token wird verwendet.
2. Fix beschreiben (konkret)¶
Abhängig vom Kontext (API, Backend, Frontend) gibt es unterschiedliche Lösungen:
A) API-Anfrage (z. B. Extbase-Endpunkt, REST)¶
-
Token im Header senden:
oderAuthorization: Bearer <TOKEN>X-AUTH-TOKEN: <TOKEN> -
Token generieren (falls nicht vorhanden):
- Für Backend-User:
$token = \TYPO3\CMS\Core\Utility\GeneralUtility::hmac( $GLOBALS['BE_USER']->id . ':' . $GLOBALS['BE_USER']->user['username'], 'backend' ); - Für Frontend-User:
$token = \TYPO3\CMS\Core\Utility\GeneralUtility::hmac( $GLOBALS['FE_USER']->id . ':' . $GLOBALS['FE_USER']->user['username'], 'frontend' );
- Für Backend-User:
-
Middleware deaktivieren (falls Token-Prüfung unnötig ist):
// In ext_localconf.php der Extension $GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['security.frontend.enforceToken'] = false;
B) Backend-Login (CSRF-Token)¶
-
Token im Formular einbinden:
<input type="hidden" name="CSRFToken" value="{f:security.csrfToken()}" /> -
Token im JavaScript setzen (für AJAX-Requests):
const token = document.querySelector('meta[name="csrf-token"]').content; fetch('/api/endpoint', { headers: { 'X-CSRF-TOKEN': token } });
C) Middleware-Konfiguration prüfen¶
-
VerifyHostHeaderanpassen (falls zu restriktiv):// In ext_localconf.php $GLOBALS['TYPO3_CONF_VARS']['SYS']['trustedHostsPattern'] = '.*'; // Nur für Entwicklung! -
Token-Prüfung in Middleware deaktivieren (falls nicht benötigt):
// In der Middleware-Klasse (z. B. VerifyHostHeader.php) public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { if ($request->getUri()->getPath() === '/api/allowed') { return $handler->handle($request); // Token-Prüfung überspringen } // ... restlicher Code }
D) Session-Probleme beheben¶
-
Session-Cookie prüfen (z. B.
fe_typo_useroderbe_typo_user). -
Cache leeren (falls veraltete Tokens im Cache liegen):
typo3 cache:flush
3. Betroffene TYPO3 Extension¶
-
Core-Extension:
typo3/cms-core(MiddlewareVerifyHostHeaderund Token-Handling). -
Mögliche Drittanbieter-Extensions:
-
typo3/cms-rest(für REST-APIs). -
typo3/cms-extbase(für Extbase-Endpunkte). - Eigene Extensions, die Middleware registrieren oder Token prüfen.
-
4. Confidence (0-100%)¶
- 90% – Die Ursache liegt mit hoher Wahrscheinlichkeit in einer fehlenden Token-Übergabe oder falscher Middleware-Konfiguration.
-
Unsicherheitsfaktoren:
- Der genaue Kontext (API, Backend, Frontend) ist nicht vollständig klar.
- Es könnte auch ein Bug in einer Drittanbieter-Extension vorliegen (z. B. falsche Middleware-Reihenfolge).
Empfohlene nächste Schritte¶
-
Request-Header analysieren (z. B. mit Browser-DevTools oder
var_dump($request->getHeaders())in einer Middleware). - Token-Generierung prüfen (z. B. ob der Token korrekt im Frontend/Backend gesetzt wird).
-
Middleware-Reihenfolge debuggen (mit
die()inVerifyHostHeader.phpoderNormalizedParamsAttribute.php). -
TYPO3-Logs prüfen (
typo3/sysext/core/Resources/Private/Log/odervar/log/typo3_*.log).
Falls der Fehler in einer spezifischen Extension auftritt, sollte deren Dokumentation oder Code auf Token-Anforderungen geprüft werden.
Nichts anzuzeigen