GuíasCuentas y acceso

Conectar la TV y el CLI

Quick connect con un código numérico o un QR para la TV y otros dispositivos, y styx login para el CLI.

EspecificadoNo implementado

Parcialmente implementado; la página sigue especificado. Diseño en dec-0125 §10 (LOCKED), sobre el device authorization grant (RFC 8628). Hecho en identity-svc (cliente styx-tv) y en el CLI: lo de «Qué recibe la TV», «Adivinar un código» y «Aprobar desde la terminal». Falta la pantalla /link de la web (BFF con CSRF), que depende del registro de operaciones y del SDK (track/docs#08), y los perfiles: no hay elección de perfil ni «bloquear en este perfil». Mientras tanto el código de la TV se aprueba desde otra sesión con styx device approve. Lo que dice obliga a la implementación.

La TV

  1. La TV muestra un código de 8 dígitos (4821 0937), un QR y la dirección …/link.
  2. En el móvil, escanea el QR o abre …/link y teclea el código. Si no tenías sesión, inicia sesión primero.
  3. Revisa la pantalla de confirmación: qué dispositivo es, cuándo pidió el código y desde qué red. Si no estás delante de ese dispositivo, no lo apruebes.
  4. Elige el perfil y, si quieres, bloquear en este perfil. Pulsa Aprobar.

El código caduca a los 10 minutos y sirve una sola vez. El QR nunca aprueba solo. La TV aparece después en Ajustes → Dispositivos, desde donde se desconecta (el listado de dispositivos aún no existe: hoy se revoca la sesión).

Qué recibe la TV

La TV pide el código con client_id = styx-tv (POST /auth/device/code, el mismo endpoint del CLI) y sondea POST /auth/device/token. A diferencia del CLI:

  • Solo puede reproducir. El cliente fija un techo de permisos (asset:play y renovar o cerrar sus sesiones de reproducción); pedir otros se rechaza, y quien aprueba solo puede reducirlo. Una TV nunca crea API keys, invitaciones ni ingesta aunque la cuenta sea de administrador, y tampoco aprueba ni rechaza dispositivos nuevos (esa decisión es siempre de una persona con login).
  • No hereda el login reciente de quien la aprueba: nada de lo que exige volver a autenticarse se puede hacer desde una TV.
  • Tiene su propio tope de sesiones (IDENTITY_MAX_DEVICE_SESSIONS_PER_ACTOR, 5 por defecto): el tope es común a TV y CLI: al conectar la sexta, cae el dispositivo más antiguo (TV o CLI). Conectar una TV nunca cierra tu sesión del navegador, ni iniciar sesión en el navegador cierra una TV.

Adivinar un código

Un código tiene ocho dígitos y hay varios pendientes a la vez, así que el servidor limita los fallos: 10 códigos inexistentes cada 10 minutos por red (IP) y 8 por hora por cuenta. Superado el límite, ni siquiera un código correcto se acepta desde esa red o cuenta hasta que acabe la ventana. Cada fallo y cada cierre quedan en el registro de seguridad (device_code_unknown, device_code_guessing).

Aprobar desde la terminal

styx device approve 48210937 --yes

Antes de aprobar, el CLI enseña el nombre del dispositivo, que es una TV, y los permisos que recibirá.

El CLI

El login del CLI (styx login, styx whoami, styx logout, styx device approve) ya está implementado: ver Entrar con el CLI.