Lección 5 de 12 · Lectura y práctica
Apollo Server, contexto y autenticacion
Respuesta rapida: Apollo Server permite exponer un endpoint GraphQL con schema, resolvers y contexto compartido por request. El contexto es donde viajan usuario, permisos, trazas y clientes de datos. Que vas a aprender Apollo.
Del concepto a la práctica
Taller de esta lección
El contexto por petición permite transportar identidad y dependencias sin repetir el análisis del token en cada resolver. Autenticación y autorización siguen siendo decisiones distintas.
Ejemplo resuelto
Una petición trae un token válido para user-42, con rol student. El contexto queda { userId: "user-42", roles: ["student"] }. course público continúa disponible; progress exige que el usuario esté inscrito en ese curso.
Para Apollo Server 5 y Express 5 importa la integración independiente y espera el arranque antes de montarla:
import { ApolloServer } from '@apollo/server';
import { expressMiddleware } from '@as-integrations/express5';
import express from 'express';
const app = express();
const server = new ApolloServer({
typeDefs: 'type Query { hello: String! }',
resolvers: { Query: { hello: () => 'Hola' } },
});
await server.start();
app.use('/graphql', express.json(), expressMiddleware(server, {
context: async () => ({ userId: null }),
}));
app.listen(4000);Este ejemplo ESM es una ruta pública de aula sin autenticación. Si añades un token, valida firma, expiración y datos esperados antes de formar el contexto; copiar un header o decodificarlo no autentica. Configura CORS y cierre ordenado al ampliar la integración, según la guía oficial.
Pruébalo
Separa datos de identidad de permisos del recurso.
Define el contexto para una petición sin token.
Decide qué operación puede leer un visitante.
Registra solo un identificador de correlación, nunca el token.
Error frecuente: tratar un rol como permiso universal. Corrige combinando rol, propiedad del recurso y estado de inscripción.
Comprueba tu resultado
Prepara tres casos: visitante, estudiante inscrito y estudiante no inscrito. El resultado es verificable si cada caso tiene acceso explícito a course y una decisión distinta para progress cuando corresponde.

Mapa de prácticaEl control de acceso, las actualizaciones y las copias de seguridad cubren riesgos distintos. Una alerta necesita un procedimiento de respuesta para contener y recuperar el servicio. Varias capas reducen la exposición, pero ninguna garantiza seguridad absoluta.
Ver la infografía en tamaño completo ↗Fuentes para profundizar
Que vas a aprender
Apollo Server permite exponer un endpoint GraphQL con schema, resolvers y contexto compartido por request. El contexto es donde viajan usuario, permisos, trazas y clientes de datos.
Paso 1: practica profesional
La autenticacion no deberia vivir en cada query como codigo repetido. Valida el token al crear contexto, guarda userId y roles, y luego aplica reglas de autorizacion en servicios o helpers de dominio.
Paso 2: practica profesional
Para una plataforma educativa, un usuario puede leer cursos publicos, pero solo acceder a progreso, certificados o lecciones privadas si esta inscripto. Esa regla debe ser explicita y testeable.
Paso 3: practica profesional
En entrevistas, muestra que entendes seguridad: autenticacion prueba identidad; autorizacion decide que puede hacer esa identidad; auditoria registra acciones relevantes.
Ejercicio practico para portfolio
Elegi una API de cursos, empleos o productos digitales y documenta como resolverias este problema con GraphQL y Apollo. Inclui el schema, una query, una mutation, manejo de errores y una nota sobre cache o permisos. El objetivo no es memorizar sintaxis: es demostrar criterio tecnico para una entrevista junior, freelance o equipo de producto.
- Entregable: captura del resultado, archivo con codigo y README breve.
- Checklist: nombres claros, datos tipados, errores explicitos y flujo reproducible.
- Conexion laboral: agregalo a tu portfolio y enlazalo desde LinkedIn o desde una propuesta del marketplace.
Cuando termines, continua con rutas de carreras, oportunidades de empleo digital y servicios publicados en el marketplace de Cursalo.
Sigue con GraphQL con Apollo para APIs modernas
Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.
Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.