legacyKey($request); if ($legacyKey === null) { return $next($request); } // Ein explizit gesetzter Bearer-Token hat Vorrang. if (filled($request->bearerToken())) { return $next($request); } if (PersonalAccessToken::findToken($legacyKey) !== null) { $request->headers->set('Authorization', 'Bearer '.$legacyKey); return $next($request); } return response()->json([ 'message' => 'This API key is not valid (anymore). Please generate a token in your customer account.', 'migration_url' => url('/customer/tokens'), 'docs_url' => url('/docs/api/v1'), ], 410); } /** * Legacy-Schlüssel aus den historischen Übergabeformen: `X-ApiKey` * (dokumentierter Header der Altportale), `X-Api-Key` (verbreitete * Schreibvariante) oder `api_key` als Query-/Body-Parameter. */ private function legacyKey(Request $request): ?string { $key = trim((string) ( $request->header('X-ApiKey') ?: $request->header('X-Api-Key') ?: $request->query('api_key') ?: $request->input('api_key') )); return $key === '' ? null : $key; } }