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

106
Visualizações
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 Respostas
Responde à pergunta

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 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