Índice del curso de node JS

  1. ¿Qué es NodeJS?
  2. Instalación de NodeJS
  3. Hola Mundo
  4. package.json
  5. Módulos
  6. Módulo para actualizar los cambios
  7. express
    1. Generación de un proyecto express
    2. Rutas con Express
    3. Enviar un array a la vista
    4. Peticiones GET y POST
  8. Mysql
    1. Express con mysql - ejemplo básico
    2. Inserción con MySQL en nodeJS
    3. Mostrar errores Mysql
    4. Con parámetros
    5. Borrar
    6. Actualizar
    7. Ejercicio CRUD
    8. Consulta
    9. Sequelize
  9. Web Sockets con Express
  10. Imprimir los logs en un fichero de texto
  11. Handlebars - hbs
  12. Variables de sesión
  13. CORS
  14. JWT (JSON Web Tokens) usando express
  15. Subida de una imagen al servidor
  16. Middleware
  17. express sin express-generator
  18. Servidor web sin express
  19. Publicar un plugin en npm
  20. Chokidar

JWT (JSON Web Tokens)

Nos permiten loguearnos en una aplicación.

npm install jsonwebtoken
index.jsconst jwt = require('jsonwebtoken');
const SECRET = 'test';

router.post('/login', function(req, res, next) {
	const userName = req.body.userName;
	const password = req.body.password;
	if(userName === "pablo" && password === "monteserin"){
		const idRecuperadaDeLaBaseDeDatos = 1;
		const token = jwt.sign({ idRecuperadaDeLaBaseDeDatos }, SECRET);
		res.send({token});
	} else{
		res.send(403)
	}
});


router.get('/user-data', function(req, res, next) {
	const tokenData = jwt.verify(req.header('accessToken'), SECRET);
	res.send(tokenData);
});

Cuando usamos un token para validar una petición, dicho token nunca lo ponemos en el cuerpo de la petición (peticiones POST) ni en la URL (peticiones GET), sino en la cabecera del mensaje.

Ya que accessToken es el nombre del parámetro enviado en la cabecera, debemos establecer que lo admitiremos como parámetro de entrada en la cabecera.

app.jsapp.use(function(req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, accesstoken");
  next();
});
Descargar ejmplo validación jwt
icono de mandar un mailPreguntame lo que quieras!
Pablo Monteserín
contacta conmigoPablo Monteserín

El servicio de resolución de dudas técnicas es sólo para los usuarios premium. Si tienes cualquier otra duda, usa el formulario de contacto. ¡Gracias!