Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

115
Visualizações
Problema de Passport-Local y Express Router con importaciones

Tengo una aplicación Express.js con una autenticación Passport-local, estoy tratando de implementar un enrutador express en mi aplicación, ya que se está volviendo muy difícil de depurar.

Este es un ejemplo de mi archivo principal (app.js)

 const express = require('express') const app = express() const passport = require('passport') const testing = require('./routes/file') app.use(passport.initialize()) app.use(passport.session()) app.use('/router', testing) const initializePassport = require('./passport-config'); initializePassport.initialize(passport); app.get('/', checkAuthenticated, (req, res) => { let user = data.key res.send(`Hi ${user}`) }) app.post('/login', checkNotAuthenticated, passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login', failureFlash: true })) function checkAuthenticated(req, res, next) { if (req.isAuthenticated()) { return next() } res.redirect('/login') } function checkNotAuthenticated(req, res, next) { if (req.isAuthenticated()) { return res.redirect('/') } next() } app.listen(3000)

Así es mi archivo principal, esto funciona perfectamente bien y solo para aclarar las cosas, la función es verificar si un usuario está autenticado o no, también mi pasaporte-config devuelve algo llamado data.key que es básicamente el nombre de usuario de el usuario.

Ahora he creado un enrutador aquí app.use('/router', testing) con la ruta como /router para fines de prueba

Ahora este es mi archivo.js que está siendo utilizado por express

 const express = require('express'), router = express.Router(); var bodyParser = require('body-parser'); // Handle POST requests router.use(bodyParser.urlencoded({ extended: false })); router.use(bodyParser.json()); router.get('/test', checkAuthenticated, (req, res) => { let user = data.key; res.send(`Hello ${user}, this is coming from the router`) }) module.exports = router;

Ahora, como se esperaba, cuando abro el sitio en localhost: 3000/router/test, devuelve un error indefinido para data.key ya que no está importado y luego, cuando comento la línea que causa el error, checkAuthenticated no funciona, incluso cuando No he iniciado sesión, puedo acceder a la página, ahora este es el problema, ¿cómo lo soluciono? Revisé todos los documentos del enrutador expreso y no pude encontrar suerte allí.

Gracias

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Su función no está en el alcance global, necesita configurarla en global para poder verla como:

 GLOBAL.authFunction = function(){ }

Sugerencia:

1- cree un módulo para la autenticación, asígnele el nombre authModule.

2- importe el middleware de verificación de autenticación del módulo donde quiera.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda