Вы должны go способом Angular, который использует Router -> CanActivate
Angular guard AuthGuard
import { Injectable } from '@angular/core'
import { Router } from '@angular/router'
import {
CanActivate, ActivatedRouteSnapshot,
RouterStateSnapshot
} from '@angular/router'
import { LoginService } from './login.service' // <-- your service
@Injectable({
providedIn: 'root'
})
export class AuthGuard implements CanActivate {
constructor(
private router: Router,
private loginService: LoginService
) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
const isLoggedIn = this.loginService.verificarToken() // <-- verificarToken boolean
if (!isLoggedIn) {
this.router.navigate(['login') // <-- redirect to login
}
return isLoggedIn
}
}
И затем в ваших маршрутах:
const appRoutes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'login', component: LoginComponent },
{
path: 'dashboard', component: UsersComponent,
canActivate: [AuthGuard], // <-- your guard redirect
},
// ...
]