Receber JSON em método get Node.js e passport.js?

  • Autor Autor Wizard
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Status

🔒 Este tópico está fechado para novas respostas.

⏰ Apenas o criador do tópico pode solicitar a reabertura de seus próprios tópicos, mas apenas dentro dos 60 dias anteriores à última atualização.

Wizard

Wizard

Xi
Verificación en dos pasos activada
En la autenticación local con passport deseo recibir distintos tipos de respuesta según sea el caso, tengo el siguiente código:

Inserir CODE, HTML ou PHP:
    // Login user
    router.get('/login', (req, res)=>{
    	res.send({message:'Usted debe iniciar sesion con su email y su clave'});
    });

    //Funciones para la autenticacion con passport-local
    passport.use(new LocalStrategy({
    	usernameField: 'email'
    }, (username, password, done) => {
    	User.findOne({'email': username }, (err, user) => {
    		if (err) { return done(err); }
    		if (!user) {
    			console.log('Usuario incorrecto.');
    			return done(null, false, { message: 'Usuario incorrecto.' });
    		}
    		if (user.password != md5(password)) {
    		///////////////////////////////////
    		// Aumenta el atributo try del esquema si la password es incorrecta
    		user.try++;
    	    if (user.try < 5) {
    	    	
    		    var update = {
    		    	name: user.name,
    		    	lastName: user.lastName,
    		    	email: user.email,
    		    	password: user.password,
    		    	registerForm: user.registerForm,
    		    	birthDate: user.birthDate,
    		    	try: user.try,
    		    	active: true
    		    };
    
    		    User.findByIdAndUpdate(user._id, update, (err, TaskUpdated) => {
    		        if (err) {
    		            res.status(500).send({ error: `Error al actualizar. Error ${err}` });
    		        }
    		    });
    	    } else {
    	    	var update = {
    		    	name: user.name,
    		    	lastName: user.lastName,
    		    	email: user.email,
    		    	password: user.password,
    		    	registerForm: user.registerForm,
    		    	birthDate: user.birthDate,
    		    	try: user.try,
    		    	active: false
    		    };
    
    		    User.findByIdAndUpdate(user._id, update, (err, TaskUpdated) => {
    		        if (err) {
    		            res.status(500).send({ error: `Error al actualizar. Error ${err}` });
    		        }
    		    });
    	    	
    	    	if (!user.active) {
    	    		console.log('Tu usuario ha sido bloqueado temporalmente');
    	    	}
    	    }
    		///////////////////////////////////
    			
    
    		}
    			if (user.try < 5) {
    				console.log(`Se accedió correctamente`);
    				return done(null, user);
    			} else {
    				console.log(`Amigo tienes ${user.try} intentos de login fallidos`);
    				//return done(null, false, { message: 'Ha superado el limite de intentos' });			
    			}
    			
    			return done(null, false, { message: 'Clave incorrecta.' });
    		
    	});
    }));

Deseo poder devolver una respuesta si se introdujo mal la contraseña, si el máximo de intentos permitidos se ha alcanzado (5 intentos), etc.

Pero si envío las respuestas directamente desde la función de passport estas no llegan, alguien sabe como puedo hacer para enviar las respuestas que deseo? O hacerlas llegar al método get?
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Cierro el tema ya que nadie en el foro lo sabe :encouragement:
 
Status

🔒 Este tópico está fechado para novas respostas.

⏰ Apenas o criador do tópico pode solicitar a reabertura de seus próprios tópicos, mas apenas dentro dos 60 dias anteriores à última atualização.

Voltar
Topo