Bonjour,

Voila je rencontre un petit problème avec mon code.

Bonjour,

Voila je rencontre un petit problème avec mon code.

je suis débutant en nodeJs, je suis entré de développer un API, alors je veux ajouter la fonctionnalité forgot password pour mon site
dans cette fonctionnalité je veux que quand l'utlisateur réinitialise son password, le token de réinitialisation de password stocker dans la base des données soit supprimé mais je constate que quant l'attribute "userResetPassword est null coté DB cela ne fonction pas quand il y a quelle que chose cela fonction aidez svp!

voici mon code

    asyncLib.waterfall([
  function(done){
    crypto.randomBytes(32, function(err, buf) {
      var token = buf.toString('hex');
      done( null, token);
    });
  },
  function (token, done){
    models.User.findOne({
      where: {email: email}, 
    })
    .then(function(userFound){
        done(null, token, userFound)

    })
    .catch(function(err){
      return res.status(400).json({ 'error': 'user not found' });
    })
  },
  function(token, userFound, done){
    if(userFound){
      models.ResetPassword.findOne({
        where: {userId: userFound.id}
    })
    .then(function(userResetPassword){
        done(null, token, userFound, userResetPassword )

    })
    .catch(function(){
      return res.status(400).json({ 'error': 'resetPassword null' });
    })
    }
  },
  function(token, userFound, userResetPassword, done){
    if(userResetPassword){
      userResetPassword.destroy({
     where: {id: userResetPassword.id}
   }).then(function(osr){
     done(null, token, userFound, userResetPassword, osr )

   })
   .catch(function(){
     return res.status(400).json({ 'error': 'userDestroyed not found' });
   })

   }else{
      if(userResetPassword = null){  
        userResetPassword.update({
          where: {id: userResetPassword.id}
        })
        .then(function(data){
          done(null, token, userFound, userResetPassword, data)
        })
        .catch(function(){
          return res.status(400).json({ 'error': 'userDestroyed not found' });
        })
      }
    }
  },
  function(token, userFound, userResetPassword, data, done){
    if(data){
       bcrypt.hash(token, 5, function(err, bcryptedPassword){
        if(bcryptedPassword){
          models.ResetPassword.create({
            userId: userFound.id,
            resetPasswordToken: bcryptedPassword,
            resetPasswordExpires: Date.now() + 3600000 // 1 hour
          })
          .then(function(newResetPasswordToken){

          })
          .catch(function(){
            return res.status(400).json({ 'error': 'cannon to create a new Reset_Password_Token' });
          })
        }else{
      return res.status(500).json({ 'error': 'cannon' });              
        }
       })
    }
  },


je veux que si il y a une information dejà expiré dans l'attribute "userResetPassword" que cela soit supprimé et que le récent soit ajoutés 

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
error : destroy ne peut pas l'attribut est null

Aucune réponse