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

91
Views
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 answers
Answer question

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