Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

94
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda