No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Cifrado de contraseña

24/38
Recursos

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¿Todo esto no sobra si usamos el atributo encrypt en el modelo ?
https://sailsjs.com/documentation/concepts/models-and-orm/attributes#encryption-at-rest

Sails tiene algo parecido a las señales de Django que permite implementar acciones antes o después de que se guarde un usuario. Es decir, podríamos guardar la contraseña en texto plano y sails automáticamente se encarga de hashearla en el momento justo antes de guardarla en la base de datos. Dejo aquí el enlace a la documentación https://sailsjs.com/documentation/concepts/models-and-orm/lifecycle-callbacks#example

Yo recomendaría crear un helper:

const bcrypt = require('bcrypt');

module.exports = {
    friendlyName: 'Generate password',
    description: 'Generate password',

    inputs: {
      password: {
        type: 'string',
        required: true
      }
    },
  
    exits: {},
  
    fn: async function (inputs, exits) {
      const hash = bcrypt.hashSync(inputs.password, 10);
      return exits.success(hash);
    }
  
  };

Y en tu controller:

module.exports = async function signup (req, res) {
    const email = req.param('email');
    const pass = req.param('password');
    
    // No olvides tus validaciones...

    const hash = await sails.helpers.generatePassword(pass);
  
    var user = await User.create({
      email: email, password: hash
    }).fetch();
  
    return res.status(201).send("OK");
  };