在本文中,我們將探索如何在 Angular 17 中使用守衛。守衛允許您保護路由並在允許存取特定路由之前檢查某些條件。
Angular 中的功能防護是一種用於攔截並可能阻止導航到路線的功能。在 Angular 17 中,您可以使用 CanActivateFn 建立功能防護。
這是一個功能性 authGuard 的範例:
import { CanActivateFn } from '@angular/router'; import { inject } from '@angular/core'; import { Router } from '@angular/router'; import { AuthService } from './auth.service'; export const authGuard: CanActivateFn = (route, state) => { const authService = inject(AuthService); const router = inject(Router); if (authService.isLoggedIn()) { return true; } else { router.navigate(['/login']); return false; } };
要使用此防護,您必須使用provideRouter和withGuards在路由模組中設定它:
import { bootstrapApplication } from '@angular/platform-browser'; import { provideRouter, withGuards } from '@angular/router'; import { AppComponent } from './app/app.component'; import { authGuard } from './app/guards/auth.guard'; const routes = [ { path: 'protected', component: ProtectedComponent, canActivate: [authGuard] } ]; bootstrapApplication(AppComponent, { providers: [ provideRouter(routes, withGuards()) ] }).catch(err => console.error(err));
Angular 17 中的功能防護提供了一種靈活且強大的方法來保護路由和管理權限。它們對於身份驗證和存取控制等任務特別有用。
更多詳情請參閱 Angular 關於守衛的官方文件【20†來源】【22†來源】【23†來源】。
以上是Angular 的守護者的詳細內容。更多資訊請關注PHP中文網其他相關文章!