Я использую Firebase для входа и регистрации.это мой authService выглядит так:
token: string;
authenticated: boolean = false;
signinUser(email: string, password: string) {
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then(response => {
this.authenticated = true;
console.log('authService-->signinUser-->authenticated', this.authenticated);
//Set the a wallet using a combination of the email and the name of the network e.g. Majd@gmail.com@stschain
this.dataService.setWallet(`${email}${this.domainExtenstion}`);
this.setEmail(email);
this.router.navigate(['/dashboard']);
console.log('sinign in')
firebase
.auth()
.currentUser.getIdToken()
.then(
(token: string) => {
(this.token = token);
// localStorage.setItem('token', JSON.stringify(token));
}
);
})
.catch(error => {
console.log(error);
alert(error);
});
}
isAuthenticated() {
return this.token != null;
}
и в моем authGuardService я вызываю метод canactivate следующим образом:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
if (!this.authService.authenticated) {
console.log('cant load' )
this.router.navigate(['/signin']);
}
console.log('can load' )
return this.authService.isAuthenticated();
}
}
но когда я обновляю страницу, это значение authenticated
всегда становится ложным.
Пожалуйста, кто-нибудь, знайте причину, которая оценит.