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

144
Vistas
Cómo obtener la identificación de la página dinámica

Tengo un HOC que redirige al usuario para que inicie sesión si no hay un token. Y lo que quiero lograr es almacenar la URL que el usuario pretendía visitar antes de redirigir y empujarlo de regreso a esa página. Pero el problema está en HOC. Obtengo solo /product/[id] pero no /product/1 .

conAuth.ts:

 import { TokenService } from '@/api/tokenService'; import { useRouter } from 'next/router'; import React from 'react'; type TWithAuth = { WrappedComponent: JSX.Element; }; export function withAuth<T extends TWithAuth = TWithAuth>( WrappedComponent: React.ComponentType<T>, ): React.ComponentType<T> { const InnerComponent = (props: T) => { if (typeof window !== 'undefined') { const Router = useRouter(); console.log(Router); const accessToken = TokenService.getAccessToken(); if (!accessToken) { Router.replace('/auth/login'); return null; } return <WrappedComponent {...props} />; } return null; }; InnerComponent.displayName = `withAuth(${WrappedComponent.displayName || WrappedComponent.name}`; return InnerComponent; }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Supongo que no está utilizando la representación del lado del servidor (getServerSideProps). Luego, debe conservar el estado entre las solicitudes en el lado del cliente (navegador)

Estos son los pasos:

  • Cuando un usuario llega a la página y no ha iniciado sesión, persiste la solicitud de la página original en una cookie o almacenamiento local.
  • Redirigir para iniciar sesión
  • Usuario de inicio de sesión.
  • Cuando un usuario inicia sesión correctamente, verifique la cookie,
  • Si hay una cookie (o almacenamiento local), tome los datos (URL original)
  • eliminar la galleta
  • Redirigir a la página original.
about 4 years ago · Juan Pablo Isaza Denunciar

0

Está llamando al gancho useRouter dentro de una declaración if, lo que rompe la primera regla de los ganchos.

También,

Probar:

 export function withAuth<T extends TWithAuth = TWithAuth>( WrappedComponent: React.ComponentType<T>, ): React.ComponentType<T> { const InnerComponent = (props: T) => { const Router = useRouter(); useEffect(()=> console.log(Router), []); const accessToken = TokenService.getAccessToken(); // is it async? If so, maybe it should be wrapped inside useEffect if (!accessToken) { Router.replace('/auth/login'); // no need to return null, you are already redirecting } return <WrappedComponent {...props} />; } return null; };
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