Skip to content

feat(auth): importar una sesión desde el navegador #8

Description

@asther0

What to build

Agregar autenticación opcional de Cineplanet mediante un navegador real abierto por el CLI. La persona completa el login directamente en Cineplanet y el CLI captura únicamente los artefactos de sesión emitidos después del acceso (cookies, tokens o almacenamiento que el recon confirme), sin leer ni guardar la contraseña.

El flujo debe empezar con recon de la autenticación real de Cineplanet y elegir el mecanismo menos invasivo. La referencia conceptual es essalud-cli: abre un Chromium instalado en modo visible y observa la respuesta de login, pero este proyecto debe reimplementar la técnica según el contrato de Cineplanet y no copiar su código, que usa PolyForm Noncommercial.

La autenticación seguirá separada del flujo anónimo. Iniciar sesión no debe reservar, seleccionar, bloquear ni comprar asientos. Debe habilitar únicamente capacidades que demuestren necesitar sesión, como datos de Socio Cineplanet o un handoff autenticado futuro.

Acceptance criteria

  • cineplanet-cli auth login abre un navegador visible y permite que la persona complete el acceso directamente en el dominio oficial de Cineplanet.
  • El CLI nunca solicita, intercepta ni persiste la contraseña de Cineplanet.
  • El recon documenta qué artefactos mantienen la sesión y cómo se validan o expiran, sin asumir que Cineplanet funciona como EsSalud.
  • La sesión se almacena en macOS Keychain o en un mecanismo equivalente revisado; no se imprime en logs ni JSON.
  • Existen operaciones para consultar el estado y cerrar la sesión, eliminando todos los secretos locales.
  • El flujo anónimo actual continúa funcionando sin login.
  • Las pruebas cubren login cancelado, navegador cerrado, sesión válida, sesión expirada y logout; los fixtures no contienen credenciales reales.
  • Ninguna operación de autenticación crea órdenes, holds, reservas o compras.

Blocked by

None - can start with recon and design. La validación end-to-end requiere que el servicio de Cineplanet haya salido de mantenimiento.

Reference

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions