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

93
Visualizações
SvelteKit Hook evita la solicitud de punto final

Estoy probando SvelteKit y tengo dificultades con los ganchos. Los documentos realmente no parecen explicarlo muy bien. Mi comprensión actual de los ganchos es que básicamente le permiten interactuar con las solicitudes realizadas a su servidor antes de que lleguen a su destino. (Estoy abierto a una mejor explicación, específicamente el gancho del handle ). Mi problema actual es que hice un punto final llamado inicio de login . Como sugiere el nombre, permite a los usuarios iniciar sesión en mi aplicación generando un token y almacenándolo como una cookie en su cliente. Esto funciona hasta que agregue ganchos. Después de leer la descripción de los ganchos, pensé que el handle del gancho es perfecto para lo que quiero hacer: validar el token en cada solicitud; si no es válido, redirija al usuario a la pantalla de inicio de sesión; si es válido, permita que la solicitud continúe sin interrupciones.

 export const handle: Handle = async ({ event, resolve }) => { const isLogin = event.url.pathname.startsWith('/login') const cookies = cookie.parse(event.request.headers.get('cookie') || ''); const token = cookies['token'] if (!token) { if (!isLogin) { return Response.redirect(`${event.url.origin}/login`) } return await resolve(event) } else { try { await verifyToken(token) if (isLogin) { return Response.redirect(`${event.url.origin}/about`) } } catch (err) { return Response.redirect(`${event.url.origin}/login`) } } return await resolve(event) };

Esto no funciona como se esperaba. Cuando inicio la solicitud al punto final de inicio de api/login , la solicitud no parece llegar allí. Tengo console.log s en todo el punto final, pero no se enviaron mensajes a la terminal y cuando revisé el almacenamiento de la aplicación, no se agregó ninguna cookie nueva.

¿Qué me estoy perdiendo de los ganchos? ¿Por qué no pasa la solicitud al punto final?

¿Alguna idea de cómo puedo arreglar esto?

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

0

El enlace de handle se ejecuta para cada solicitud, incluidos los puntos finales.

Cuando obtiene /api/login sin un token, su gancho redirigirá la solicitud a /login ya que isLogin === false . Debe permitir todas las rutas a las que se debe acceder sin iniciar sesión, por ejemplo:

 const isLogin = /^\/(api\/)?login$/.test(event.url.pathname)
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