Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

118
Views
Koa y Pasaporte Credenciales faltantes

Tengo un servidor Koa que usa Passport para autenticar a los usuarios contra un Array y un cliente React. Después de un inicio de sesión exitoso, las siguientes solicitudes no se autentican ya que la cookie no está definida. El parámetro de error de la función de authenticate tiene:

 { message: 'Missing credentials' }

Después de navegar por el sitio, solucioné los errores habituales, llamé a la función de authenticate devuelta, agregué {credentials: 'include'} para fetch , etc., pero sigo teniendo el mismo problema.

Lista de middleware: router.use(cookie.default());

app.use :

koa-body, koa-session-store (también probado con koa-session), pasaporte.inicializar(), pasaporte.sesión(), enrutador.rutas(), koa-static

estrategia local

 passport.use(new Strategy((username,password,callback)=>{ var u = users.find(u=>u.username == username); return (u && password == 'password')? callback(null, u ):callback('user not found', false); }));

/iniciar sesión autenticar

 .post('/login', (ctx)=>{ console.log(ctx.request.body); return passport.authenticate('local',(err,user,info,status)=>{ if(user) { ctx.login(user); ctx.body = {success: true}; // works correctly ctx.redirect('/login-success'); } else { ctx.redirect('/login-failure'); } })(ctx); });

/Inicio de sesión exitoso

 router.get('/login-success',async(ctx)=> { return passport.authenticate('local',(err,user,info,status)=>{ console.log(err); // "Missing credentials" })(ctx); await ctx.response; ctx.body = {success: true}; }).

llamada de cliente

 let body = JSON.stringify({username: this.state.username, password: this.state.password}); let result = await fetch('http://localhost:4200/login',{method:'POST',credentials: 'include',body, headers:{'Content-Type':'application/json'}});
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La solución es realmente simple, pero la razón es difícil de encontrar.

el middleware async debe llamar await next() o return next() al final. De lo contrario, se genera un error 404.

Al agregar await next() a la devolución de llamada async /login-success , se solucionó el problema.

Documentación: https://github.com/koajs/koa/blob/master/docs/troubleshooting.md#my-middleware-is-not-called

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!