🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAutorización por mensaje y por canal
5 tareas · 40 min · Principiante
Saber quién abrió la conexión no dice qué puede hacer con ella. Dentro del canal llegan peticiones disfrazadas de mensajes —unirse a la mudanza de alguien, cambiar una franja de llegada, cancelar— y cada una necesita la misma pregunta que haría un controlador HTTP. En Trasteos Corotos tres mudanzas amanecieron con la franja cambiada sin que nadie lo pidiera. Tienes el manejador de mensajes, la tabla de mudanzas por cuenta y el registro del día.
Objetivo de la sala
Saber quién abrió la conexión no dice qué puede hacer con ella. Dentro del canal llegan peticiones disfrazadas de mensajes —unirse a la mudanza de alguien, cambiar una franja de llegada, cancelar— y cada una necesita la misma pregunta que haría un controlador HTTP. En Trasteos Corotos tres mudanzas amanecieron con la franja cambiada sin que nadie lo pidiera. Tienes el manejador de mensajes, la tabla de mudanzas por cuenta y el registro del día.En una aplicación web clásica nadie discute que cada ruta comprueba si quien llama puede hacer eso sobre ese recurso. En un canal persistente es fácil olvidarlo, porque el código de mensajes vive en otro archivo, a veces en otro servicio, y empieza con una conexión que ya pasó por el inicio de sesión. Pero un mensaje del tipo «únete al canal de la mudanza 40862» es exactamente lo mismo que pedir esa mudanza por su identificador: si nadie comprueba la relación entre la cuenta y el recurso, es una referencia directa insegura con otro transporte.
Hay dos puntos de control. Al suscribirse a un canal, que decide qué podrá escuchar la conexión. Y en cada mensaje que pide una acción, que decide qué podrá cambiar. Los dos se resuelven con datos que tiene el servidor —la identidad que asoció a la conexión y sus propias tablas—, nunca con lo que el mensaje dice de sí mismo.
Responde para continuar
Si la conexión ya se autenticó en el handshake, ¿qué falta para aceptar un mensaje de suscripción a un canal?
Ver pista de ayuda
Es la misma comprobación que harías antes de devolver un recurso por su identificador.
Abre el laboratorio. En canales.js la suscripción solo comprueba una cosa. Cruza cada mensaje de suscripción de registro-mensajes.txt con mudanzas-por-cuenta.txt.
Responde para continuar
¿A qué canal se unió una cuenta de cliente que no corresponde a ninguna de sus mudanzas? Escríbelo tal como aparece.
Ver pista de ayuda
Hay cinco suscripciones de clientes; una de ellas es de una mudanza que pertenece a otra cuenta.
Ahora la acción de reprogramar. Fíjate en qué dato usa el código para decidir si puede cambiarse la franja, y de dónde sale ese dato. Compáralo con cómo se decide la cancelación unas líneas más abajo, que sí está bien resuelta.
Responde para continuar
¿Qué campo del mensaje decide, en el código, si quien lo envía puede reprogramar? Escribe su nombre.
Ver pista de ayuda
Busca la condición dentro del bloque de reprogramar.
Mide el alcance en el registro. Cuenta solo las reprogramaciones que se aplicaron y que envió una cuenta cuyo rol, en la tabla del servidor, es de cliente. Los intentos ignorados no cuentan, y las de la cuenta de coordinación son legítimas.
Responde para continuar
¿Cuántas reprogramaciones enviadas por cuentas de cliente se aplicaron ese día?
Ver pista de ayuda
Filtra las líneas de reprogramar con resultado aplicado y mira el rol de cada cuenta en la tabla.
La cancelación del mismo archivo muestra el patrón correcto: busca el recurso en el servidor y lo compara con la cuenta asociada a la conexión. Falta extenderlo a todo lo demás y no perder de vista que el canal dura horas: si un coordinador deja de serlo a media jornada, su conexión no debería seguir teniendo el permiso.
Responde para continuar
¿Qué arreglo pedirías para el manejador de mensajes de Corotos?
Ver pista de ayuda
Lo que el cliente controla no puede decidir un permiso, aunque vaya firmado o escondido.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.