Al crear aplicaciones web, es importante administrar la autenticación del usuario de forma segura. Dos bibliotecas esenciales para esto son:
bcryptjs: se utiliza para realizar hash y comparar contraseñas de forma segura.
Token web JSON: se utiliza para firmar y verificar tokens JWT para la autenticación del usuario.
Cubriremos cómo implementar estas dos bibliotecas en su aplicación Node.js para la administración segura de contraseñas y la autenticación basada en tokens.
Cómo: Usar bcryptjs y jsonwebtoken en Node.js
Al crear aplicaciones web, es importante gestionar la autenticación de usuarios de forma segura. Dos bibliotecas esenciales para esto son:
Instalar paquete
npm instala bcryptjs
Ahora déjame mostrarte cómo hacer la magia.
Lo mismo de siempre, crea un nuevo archivo js y recuerda siempre solicitar el paquete.
const { hashSync, compareSync } = require("bcryptjs"); module.exports = { hashPassword: (password) => hashSync(password), comparePassword: (password, hashed) => compareSync(password, hashed };
Cómo funciona:
hashSync(contraseña): aplica un hash a la contraseña del usuario.
compareSync(contraseña, contraseña hash): compara la contraseña de texto sin formato con la versión hash para validar el inicio de sesión del usuario.
Instalar el paquete:
npm instala jsonwebtoken
jsonwebtoken nos permite crear un token seguro (JWT) para cada usuario autenticado. Este token se envía al cliente y se puede utilizar para autenticar al usuario en solicitudes posteriores.
const { sign, verify } = require('jsonwebtoken'); const secretkey = "yoursecretkey"; // Secret key to sign the token module.exports = { logToken: (payload) => log(payload, secretkey), // Create JWT token verifyToken: (token) => verify(token, secretkey) // Verify JWT token };
Cómo funciona:
signToken(carga útil): crea un JWT firmado con la carga útil dada (por ejemplo, datos de usuario) usando una clave secreta.
verifyToken(token): verifica la autenticidad del token JWT utilizando la misma clave secreta.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3