estoy aprendiendo Sequelize y veo algo raro en el curso,
const { Strategy } = require('passport-local'); const boom = require('@hapi/boom'); const bcrypt = require('bcrypt'); const UserService = require('./../../../services/user.service'); const service = new UserService(); const LocalStrategy = new Strategy({ usernameField: 'email', passwordField: 'password' }, async (email, password, done) => { try { const user = await service.findByEmail(email); if (!user) { done(boom.unauthorized(), false); } const isMatch = await bcrypt.compare(password, user.password); if (!isMatch) { done(boom.unauthorized(), false); } delete user.dataValues.password; done(null, user); } catch (error) { done(error, false); } } ); module.exports = LocalStrategy;Mi pregunta es, cuando quiero comparar las contraseñas que uso
bcrypt.compare(contraseña, usuario.contraseña );
y cuando quiero borrar la contraseña que uso
borrar usuario. valores de datos.contraseña
de donde viene dataValues, por cierto estoy usando sequelize
No recomiendo eliminar accesorios de servicio en el modelo dataValues contiene metadatos sobre todos los campos de un determinado modelo) porque puede conducir a un trabajo incorrecto de este modelo. En lugar de eliminar el campo de password de los dataValues de datos, debe eliminarlo de un objeto simple que representa una determinada instancia del modelo:
const { password, ...plainUser } = user.get({ plain: true }) done(null, plainUser);