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

263
Vistas
Comprobación del estado de autenticación y redireccionamiento del usuario

En el componente de mi aplicación, quiero verificar si el usuario está autenticado tan pronto como se carga y, si no, redirigir al usuario a una página pública inmediatamente en lugar de cargar la página de inicio (perfil). Estoy usando el servicio Auth0 que se puede encontrar aquí: enlace al archivo de GitHub

La pregunta es, ¿debo ejecutar esto en el constructor o en ngOnInit y por qué?

 if (auth.isAuthenticated()) { router.navigateByUrl(...)) }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Es posible que desee considerar agregarlo a un protector de ruta en lugar de agregarlo a un constructor de componentes/ngOnInit.

Tengo un ejemplo aquí: https://github.com/DeborahK/Angular-Routing

Consulte los auth.service.ts y auth-guard.service.ts en la carpeta del usuario. Este ejemplo no usa Auth0, pero tiene la "plomería" de Angular.

over 4 years ago · Santiago Trujillo Denunciar

0

En general, debe evitar poner cualquier lógica comercial en el constructor de componentes o directivas.

¿Por qué?

Porque, en el momento en que se ejecuta el constructor de un componente, Angular aún no ha inicializado ninguna entrada que pueda tener ese componente (o directiva). Entonces, si la lógica de inicialización depende del valor de sus entradas, esas entradas no tendrán sus valores correctos, lo que dará como resultado una lógica comercial incorrecta.

¡Pero la inicialización de mi componente/directiva no depende de sus entradas!

Eso puede ser cierto ahora, pero si eso cambia, ahora debe recordar mover toda su lógica del constructor a ngOnInit , que solo está buscando problemas. Y luego, tendría esta inconsistencia en la que algunos componentes usan el constructor para la lógica de inicialización y otros usan ngOnInit , y esa inconsistencia innecesaria también está causando problemas a medida que se desarrolla su aplicación. Es la misma razón por la que la recomendación fuerte es agregar siempre el decorador @Injectable en todos los servicios, incluso si técnicamente solo lo necesita si su servicio usa inyección de dependencia; agréguelo siempre para que no se olvide de hacerlo más tarde cuando realmente lo haga. necesito.

TLDR;

Para mantener la coherencia y ahorrarse problemas de depuración más adelante, solo use su constructor en sus componentes para capturar inyectables como propiedades: coloque toda su otra lógica en ngOnInit .

NOTA

Sin embargo, como señaló @DeborahK, en esta situación específica en la que esencialmente desea evitar que se enrute un componente si no se cumple una determinada condición, una mejor solución puede ser un protector de enrutador. Esta característica del enrutador evita que el componente se inicialice si no se cumple alguna condición.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede crear una fábrica para verificar el inicio de sesión con la API de llamada

 .factory('check_login_session', function ($rootScope,ApiService,ApiEndpoint ,$location,$cookies,$timeout) { return { success : function(response) { var check_login ={ wut_token : $cookies.user_details }; return ApiService.postModel(ApiEndpoint.Models.check_login,check_login).then(function (response) { if (response.SUCCESS == "FALSE") { $location.path("staticpage"); } else { return response.SUCCESS; } }) } } });

en el controlador

 check_login_session.success().then(function(res) { if(res == "TRUE"){ //do as you want } });
over 4 years ago · Santiago Trujillo 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