- 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
Curso de Autenticación con OAuth
0 Comentarios
para escribir tu comentario