import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
@Injectable() export class AuthGuard implements CanActivate {
constructor(private router: Router) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { // 添加认证逻辑,例如验证用户是否已经登录 if (isAuthenticated) { return true; } else { // 如果没有认证,则重定向到登录页 this.router.navigate(['/login']); return false; } } }
const routes: Routes = [ { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] // 添加AuthGuard守卫 }, ... ];
这样就可以在访问受保护的路由时进行认证,并在没有认证时将用户重定向到登录页。