Tengo una autenticación que funciona con angularfire2, solo me pregunto si hay otra forma de verificar si el usuario está autenticado después de que el usuario haya iniciado sesión recientemente sin acceder al servidor. La forma en que hago esto es así
isAuthenticated():boolean{ this.af.auth.subscribe(data => { if(data ){ // User is authenticated return true; } }); }Cualquier ayuda es apreciada
Edición 1:
Decidí seguir usando el código original para verificar si el usuario inició sesión recientemente. Lo que @cartant sugirió es lo suficientemente bueno cuando no está verificando al usuario al inicio de su aplicación porque podría devolver un valor nulo como se indica en el oficial de firebase. documentos La forma en que lo usé aquí es que tengo elementos de menú que solo deben mostrarse a usuarios autenticados y usar firebase.auth().currentUser siempre devolverá un valor nulo en la carga inicial de la página.
Actualmente, AngularFire2 se está sometiendo a una refactorización y se eliminarán partes importantes de su API de autenticación para usar Firebase Web API junto con AngularFire2. Hay más información en este número .
El observable que hayas utilizado permanecerá en AngularFire2 y podrás suscribirte a él para recibir notificaciones de cambios en el estado de autenticación.
Sin embargo, si todo lo que le interesa es determinar si hay o no un usuario autenticado actualmente, hay una propiedad currentUser en Firebase Web API que le dirá que:
import * as firebase from "firebase"; ... console.log(firebase.auth().currentUser);Puede usar los usuarios de ruta preconstruidos con guardias de AngularFire
AngularFireAuthGuard proporciona un canActivate Router Guard preconstruido usando AngularFireAuth.
Puede personalizar el comportamiento de este AngularFireAuthGuard al pasar una canalización RXJS a través del authGuardPipe de los datos de la ruta. Puedes aprender más aquí .