Aprovecha el precio especial.

Antes:$249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14d

18h

47m

29s

1

Firmando un JWT de manera simétrica

  • Lo primero es instalar las siguientes dependencias
    npm i -S express dotenv jsonwebtoken body-parser
- La librería dotenv nos permite crear archivos .env con la información que no podemos publicar de nuestro proyecto
- La librería la librería jsonwebtoken nos permite firmar nuestros tokens de manera simétrica. nos permite firmar nuestros tokens de manera simétrica.
  • Creamos nuestro archivo .env.example y .env
    AUTH_JWT_SECRET=

tiene que ser una cadena de base 256bit

  • Creamos nuestro archivo config para llamar a nuestras variables de entorno
  • Instalamos nodemon como dependencia de desarrollo
    npm i -D nodemon
  • Creamos nuestros script
"scripts": {
        "start": "node index.js",
        "dev": "nodemon index.js"
      },
  • Vamos a crear un endpoint /api/auth/token donde debemos generar un token de usuario utilizando el método jwt.sign()
    app.post('/api/auth/token', (req, res) => {
      const { email, username, name } = req.body;
      const token = jwt.sign({ sub: username, email, name }, config.authJwtSecret);
      res.json({ acess_token: token });
    });
- Des estructuramos el body de request
- creamos nuestro token usando jwt.sign el cual recibe dos parámetros
  1. El payload: nuestros datos de usuario
  2. El secret:  nuestro sha de base 256 bit

Nuestro index.js queda así

const express = require('express');
    const bodyParser = require('body-parser');
    const jwt = require('jsonwebtoken');
    const { config } = require('./config/index');
    const app = express();
    //body parser
    app.use(bodyParser.json());
    app.post('/api/auth/token', (req, res) => {
      const { email, username, name } = req.body;
      const token = jwt.sign({ sub: username, email, name }, config.authJwtSecret);
      res.json({ acess_token: token });
    });
    app.listen(config.port, () => {
      console.log(`Server running on http://localhost:${config.port}`);
    });
  • Corremos nuestro script de desarrollo
    npm run dev

Probando nuestro Token con Postman

  • Creamos un request y enviamos en el body la data de nuestro usuario

  • Si todo sale bien vamos a obtener nuestro token

Debugeando nuestro token en https://jwt.io/

  • Copiamos nuestro token y podemos ver su información, aunque este será invalido hasta que agregamos nuestro secret

  • Una vez agregamos nuestro secret el token será valido

Escribe tu comentario
+ 2