El servidor no recuerda: hay que decirle quién eres cada vez
El HTTP es amnésico: cada petición es un desconocido nuevo. Para que el backend sepa quién llama y qué puede hacer, la identidad viaja con cada petición dentro de una sesión o un token. Los permisos son las reglas que deciden, con esa identidad en mano, si la operación se autoriza o se rechaza.
[La identidad viaja con cada petición]
Esta actividad interactiva ('Explicacion visual') requiere el motor completo de Lumbre. El contenido estatico se muestra arriba; para la experiencia interactiva, visita la version online de este objeto.
Sesión, token y permiso (en una frase)
| Concepto | Qué es | Analogía |
|---|---|---|
| Sesión | El «estado de estar conectado» del usuario | tu pulsera de acceso en un evento |
| Token | La credencial que viaja en cada petición | el boleto con tu nombre que muestras en cada puerta |
| Permiso | La regla de qué puede hacer esa identidad | que con tu pulsera entras a zona VIP pero no a cocina |
| Rol | Un paquete de permisos para un tipo de usuario | admin, editor, invitado |
Para reforzar
Tokens, autenticación y claves: protege tus accesos
OA publicado sobre tokens y llaves. Aquí no repetimos esa base: la conectamos con los permisos por operación dentro de tu backend.
Prompt de permisos
Implementa control de acceso en el CRUD de Contactos:\n- en cada peticion, lee el token; si no hay token valido, responde 401 (no autorizado).\n- un usuario normal solo puede listar, crear, editar y borrar SUS propios contactos (comprueba el campo owner_id).\n- un usuario con rol «admin» puede ver todos.\n- si intenta tocar un contacto ajeno, responde 403, no lo devuelvas vacio disfrazado de exito.\n\nLa comprobacion va en el SERVIDOR en cada endpoint, no solo ocultando botones en el frontend.Prueba
En tu app, «Ana» no ve el botón de borrar los contactos de «Luis». Pero Luis sabe la dirección del endpoint y llama a DELETE /contactos/{id} sin permiso. ¿Qué debe pasar?
El token de un usuario debe viajar dentro de cada petición para que el backend sepa quién llama.
Detecta el permiso de juguete
Revisas cómo una IA aplicó permisos en tu app. Señala la decisión que da una falsa sensación de seguridad:
- Devuelve 401 cuando falta un token válido.
- Devuelve 403 cuando el usuario intenta tocar un contacto que no es suyo.
- Oculta el botón «borrar» en el frontend y da el permiso por cumplido.
- Filtra en el servidor los datos para que cada usuario vea solo los suyos.
Identifica la linea con error.
Define 2 roles para tu proyecto (p. ej. usuario y admin) y escribe qué puede y qué no puede hacer cada uno sobre tus entidades. Pídele a la IA que lo aplique en el servidor.