Я на самом деле изучаю Angular и firebase, я хочу добавить защиту маршрута на панель инструментов пользователей, чтобы только зарегистрированные пользователи могли просматривать страницу. Аутентификация работает нормально, но у меня возникают проблемы, не позволяющие никому не заходить в систему для доступа к панели пользователя. Это мой код ниже.
Authservice.service.ts
@Injectable({
providedIn: 'root'
})
export class AuthServiceService {
newUser: any;
// passing Error message
private eventAuthError = new BehaviorSubject<string>('');
eventError$ = this.eventAuthError.asObservable();
showSuccessCreated: boolean;
constructor( private authz: AngularFireAuth, private db: AngularFirestore, private route:Router)
{ }
// geting user details
getUserState() {
return this.authz.authState;
}
// LoggIn Users
login(email: string , password: string ) {
this.authz.auth.signInWithEmailAndPassword(email, password)
.catch( error => {
this.eventAuthError.next(error);
}).then(userCredential => {
if (userCredential) {
this.route.navigate(['/dashboard']);
}
});
}
Это служба Authguard, я пытаюсь сослаться на метод входа из моего authservice.service.ts, но он все еще перенаправляет на панель пользователя, несмотря на то, что я не вошел в систему.
authguard.service.ts
export class AuthguardService implements CanActivate {
constructor(private authservice: AuthServiceService, private route: Router) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
let isAuthenicated = !!this.authservice.login;
if(isAuthenicated ){
return true;
}
console.log('Access denied');
this.route.navigate(['/login']);
return false;
}
}
route.module.ts
const routes: Routes = [
{ path: 'dashboard', component: DashboardComponent, canActivate:[AuthguardService],
children: [
{path: '', redirectTo: 'employees', pathMatch: 'full'},
{path: 'employees', component: EmployeelistComponent, resolve: {employeeList: ResolverGuardService}},
{path: 'detail/:id', component: EmployeeDetailComponent, canActivate: [CanActivateGuardService],
{ path: 'notfound', component: PageNotFoundComponent},
]
},
];