Partage
  • Partager sur Facebook
  • Partager sur Twitter

fonctionnalité réinitialiser le mode passe

    7 mai 2019 à 22:32:42

    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’utilisateur 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’attribut "userResetPassword est null coté DB cela ne fonction pas quand il y a quelle que chose cela fonction aidez svp!
    voici mon code 
    je veux que si il y a une information déjà expiré dans l’attribut
     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' });              
                }
               })
            }
          },

    "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
    • Partager sur Facebook
    • Partager sur Twitter

    fonctionnalité réinitialiser le mode passe

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown