Está en la página 1de 24

Express

JWT
REACT
REDUX
SEBASTIAN CASAÑAS MENDOZA
EXPRESS
 Aplicaciones web
Express es una infraestructura de aplicaciones web Node.js mínima y flexible
que proporciona un conjunto sólido de características para las aplicaciones
web y móviles.
 Node.js es un entorno en tiempo de ejecución multiplataforma, de código
abierto, para la capa del servidor (pero no limitándose a ello) basado en el
lenguaje de programación de modelo asicrono y dirigido por eventos
Caracteristicas
 Entorno de ejecución de JavaScript
 Un motor v8 google traduce código de JavaScript
 naturaleza asincrónica 
 Se maneja atreves de eventos
 Necesita muchos recursos en los servidores para soportar el flujo
ventajas
 puede ejecutarse en una variedad de servidores, entre los que destacan
Microsoft Windows, Mac OS X y Unix
 permite crear trabajos de gran calidad y disminuye el margen de
experimentar errores técnicos.
 puede soportar decenas de miles de conexiones concurrentes y así disminuir
los costes de infraestructura
 ideal para manejar aplicaciones de alto tráfico de usuarios y eventos
 El desarrollo de aplicaciones es mucho más rápido
desventajas
 Necesita muchos recursos en los servidores para soportar el flujo
 Cambio de versiones que rompen la compatibilidad
 Falta de librería estándar
 Aplicaciones pesadas en la CPU
lenguaje

 JavaScript
 C
 C++
JWT
 JSON Web Token (JWT) es un estándar abierto (RFC-7519) basado en JSON
para crear un token que sirva para enviar datos entre aplicaciones o servicios
y garantizar que sean válidos y seguros.
 El caso más común de uso de los JWT es para manejar la autenticación en
aplicaciones móviles o web. Para esto cuando el usuario se quiere autenticar
manda sus datos de inicio del sesión al servidor, este genera el JWT y se lo
manda a la aplicación cliente, luego en cada petición el cliente envía este
token que el servidor usa para verificar que el usuario este correctamente
autenticado y saber quien es
características
 El caso más común de uso de los JWT es para manejar la
autenticación en aplicaciones móviles o web. Para esto cuando el
usuario se quiere autenticar manda sus datos de inicio del sesión al
servidor, este genera el JWT y se lo manda a la aplicación cliente,
luego en cada petición el cliente envía este token que el servidor usa
para verificar que el usuario este correctamente autenticado y saber
quien es
 El usuario envía código alfanumérico al servidor , lo descifra,
decodificar, validar y mira si el usuario existe
Ventajas
 Es muy compacto
 Trasmisión ágil y liviana
 No se guarda nada en el servidor
 Tiempo ilimitado de caducida
Desventajas
 Suplantación
 Validación de usuario
Estructura de un JWT

 header.
 payload.
 signature
Las primeras dos partes (header y payload) son strings en base64 creados a partir
dos JSON. La tercer parte (signature) toma las otras dos partes y las encripta
usando un algoritmo
Header
El header de un JWT tiene la siguiente forma

 La propiedad alg indica el algoritmo usado para en la firma y la propiedad typ define el tipo de
token, en nuestro caso JWT
 Un token o también llamado componente léxico es una cadena de caracteres que tiene un
significado
Propiedades posibles
 Tipo de token (typ) - Identifica el tipo de token.
 Tipo de contenido (cty) - Identifica el tipo de contenido (siempre debe ser JWT)
 Algoritmo de firmado (alg) - Indica que tipo de algoritmo fue usado para firmar el
token.
Payload

 El payload de un JWT es un JSON que puede tener cualquier propiedad,


aunque hay una serie de nombres de propiedades definidos en el estándar
Propiedades estándar

 Creador (iss) - Identifica a quien creo el JWT


 Razón (sub) - Identifica la razón del JWT, se puede usar para limitar su uso a
ciertos casos.
 Audiencia (aud) - Identifica quien se supone que va a recibir el JWT. Un ejemplo
puede ser web, android o ios. Quien use un JWT con este campo debe además de
usar el JWT enviar el valor definido en esta propiedad de alguna otra forma.
 Tiempo de expiración (exp) - Una fecha que sirva para verificar si el JWT esta
vencido y obligar al usuario a volver a autenticarse.
 No antes (nbf) - Indica desde que momento se va a empezar a aceptar un JWT.
 Creado (iat) - Indica cuando fue creado el JWT.
 ID (jti) - Un identifador único para cada JWT
Signature

 Por último la firma del JWT se genera usando los anteriores dos campos en
base64 y una key secreta (que solo se sepa en los servidores que creen o usen
el JWT) para usar un algoritmo de encriptación. La forma de hacerlo entonces
sería la siguiente (usando pseudo código)
React
 también llamada React.js o ReactJS) es una biblioteca Javascript de código
abierto diseñada para crear interfaces de usuario con el objetivo de facilitar
el desarrollo de aplicaciones en una sola página. Es mantenido por Facebook y
la comunidad de software libre, han participado en el proyecto más de mil
desarrolladores diferentes.
 React intenta ayudar a los desarrolladores a construir aplicaciones que usan
datos que cambian todo el tiempo. Su objetivo es ser sencillo, declarativo y
fácil de combinar. React sólo maneja la interfaz de usuario en una aplicación;
React es la Vista en un contexto en el que se use el patrón MVC (Modelo-
Vista-Controlador) o MVVM (Modelo-vista-modelo de vista). También puede
ser utilizado con las extensiones de React-based que se encargan de las
partes no-UI (que no forman parte de la interfaz de usuario) de una aplicación
web.
características
 Desarrollada por quipo de Facebook
 Sirve para interfaces de usuario
 Nace debido a un problema de rendimiento de Facebook(vistas,datos)
 Usa su propio DOM virtual
 De divide por componentes (lógica y presentación)
 Se centra en la capa de la vista
 Jsx es extensión de sintaxis que permite mezclar HTML con JAVASCRIPT
ventajas
 Proceso renderizado eficiente
 Su respaldo de Facebook y instagram
 desarrollo por componentes
 Código mas declarativo
 Flujo de datos unidereccional (mejora el mantenimiento de la aplicación )
Desventajas
 Mala documentación debido a su contante actualizaciones
 Alto ritmo de desarrollo
LENGUAJE
 JavaScript
REDUX
 es una biblioteca de código abierto de JavaScript para administrar el estado
de la aplicación. Se usa más comúnmente con bibliotecas como React o
Angular para crear interfaces de usuario. Similar a la arquitectura Flux de
Facebook
 Te ayuda a escribir aplicaciones que se comportan de manera consistente,
corren en distintos ambientes (cliente, servidor y nativo), y son fáciles de
probar. Además de eso, provee una gran experiencia de desarrollo, gracias a
edición en vivo combinado con un depurador sobre una línea de tiempo.
CARACTERISICAS
 Patrón para el manejo de información
 Cualquier elemento puede cambiar data
 Toda la data de la aplicación se encuentra en una estructura previamente
definida
 Toda la información se alacena en único lugar llamado STORE(contiene la
información de la aplicación).
 Interacciones usuario y código de acciones que describen un suceso
 El valor actual de la aplicación se llama STATE
 Un nuevo estado es creado, en base a la combinación del viejo estado esto
realizado por una función llamada REDUCER
ESQEUAM DE REDUX
VENTAJAS
 Mejor comprensión de la evolución del estado en un momento dado
 Facilidad para incorporar nuevas características a la app
 Mejoras en el proceso de desarrollo, pudiendo reiniciar la ejecución a partir de un
estado concreto.
DESVENTAJAS
 Centralización de la información
 Da acceso al estado (solo lectura)

LENGUAJE
 JavaScript
LIBRERÍA
 Immutable
 Baobab