[Feature]: Crawl4aiDockerClient has no public option for the API token the 0.9 server requires

Abierto Apto para principiantes
#2,474 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
77/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
api, backend

Línea de trabajo

Empieza por localizar la definición de Crawl4aiDockerClient y seguir cómo envía solicitudes, incluido get_schema(); comprueba si ya existen pruebas del cliente. La tarea estará completada cuando quienes lo invoquen puedan proporcionar api_token durante la inicialización y el token Bearer se envíe en cada solicitud, con pruebas que cubran tanto el rastreo como el acceso al esquema.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

⚙ Done ✨ Enhancement
crawl4ai version

0.9.5 (also on develop; since 0.9.0)

Expected Behavior

The SDK client can talk to a 0.9 server, which requires CRAWL4AI_API_TOKEN on every request.

Current Behavior

Crawl4aiDockerClient has no token option, and every request returns:

401 Authentication required

client.authenticate(email) does not help: it posts only {"email": ...} to /token, but since 0.9.0 /token also requires api_token in the body, so it returns 401 (or 403 when no token is configured).

The only working way is to set a private attribute, as deploy/docker/README.md does today:

client._token = os.environ["CRAWL4AI_API_TOKEN"]
# or
client._http_client.headers["Authorization"] = "Bearer <token>"
Is this reproducible?

Yes

Code snippets
from crawl4ai.docker_client import Crawl4aiDockerClient

async with Crawl4aiDockerClient(base_url="http://localhost:11235") as client:
    await client.crawl(["https://example.com"])
# RequestError: Server error 401: Authentication required
Proposed fix

Add api_token: Optional[str] = None to Crawl4aiDockerClient.__init__ and send it as Authorization: Bearer <token> on every request. With the private _token workaround the header is set only inside crawl(), so get_schema() still returns 401. I'll open a PR.

The broken authenticate() is left for a separate change.

OS

macOS 26.6 (platform-independent)

Python version

3.13

Lenguaje dominante
Python
Estrellas
86.8k
Forks
9k
Merge medio
2 d 3 h
PR fusionados (30 d)
26

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de unclecode/crawl4ai

Todos los issues de unclecode/crawl4ai

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.