示例代码:
import { Injectable } from '@angular/core'; import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router'; import { AuthService } from '../services/auth.service';
@Injectable({ providedIn: 'root' }) export class AuthGuard implements CanActivate {
constructor(private authService: AuthService, private router: Router) {}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { if (this.authService.isUserLoggedIn()) { return true; } else { this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }}); return false; } } }
示例代码:
注意:在示例代码中,我们假设 AuthService 中实现了 isUserLoggedIn 方法以检查用户登录状态。您需要根据自己的需求实现此方法。