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

299
Visualizações
Problemas para ejecutar la estrategia de inicio de sesión con pasaporte. Error de autenticación ~ TypeError: no se puede leer la propiedad 'autenticar' de indefinido

Cosas que he probado

  • Mover la autenticación directamente al servidor
  • Desinstalar y reinstalar lo siguiente ( así como sus tipos correspondientes ):
    • pasaporte
    • pasaporte-jwt
    • pasaporte-local

Todos estos todavía dan como resultado el siguiente mensaje de error :
"Error de tipo: no se puede leer la propiedad 'autenticar' de indefinido" ~ Bloqueo de la aplicación

Código

Archivo del servidor

 import * as express from "express"; import apiRouter from "./routes/index"; import * as passport from 'passport'; import * as PassportLocal from 'passport-local'; import './middleware/passport-stradegies'; const app = express(); app.use(passport.initialize()); app.use(express.static("public")); app.use(express.json()); app.use(apiRouter); const port = process.env.PORT || 3000; app.listen(port, () => console.log(`Server listening on port: ${port}`));

Código de inicio de sesión del pasaporte

 import * as passport from 'passport'; import * as PassportLocal from 'passport-local'; import blogs from "../db/blogs"; import { compareHash } from "../utils"; passport.serializeUser((user, done)=> done(null, user)); passport.deserializeUser((user, done)=> done(null, user)); passport.use(new PassportLocal.Strategy({ usernameField: 'email' },async (email, password, done) =>{ try { const [userFound] = await blogs.find("email", email); if (userFound && compareHash(password, userFound.userpassword)) { done(null, userFound); }else{ done(null, false); } } catch (error) { done(error); } }))

Página de inicio de sesión/creación de token

 import * as express from "express"; // import * as jwt from 'jsonwebtoken'; import { authenticate } from 'passport'; import config from '../../config'; const router = express.Router(); router.post("/", authenticate('local'), async (req, res, next) => { try { // const token = jwt.sign({ // userid: userFound.id, email: userFound.email, role: 1}, // config.jwt.secret, {expiresIn: '15d'} // ); // return res.json(token); res.json('plz'); } catch (err) { console.log(err); res.status(500).json({ message: "My code login broke oops" }); } }); export default router;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El único problema es que el pasaporte cambió la forma en que se importa la autenticación.

En la página de autenticación de inicio de sesión/token

Cambiar la importación:

 // import { authenticate } from 'passport'; to import * as passport from 'passport'; // then anywhere you use authenticate just use passport.authenticate
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