diff --git a/index/src/app/view/admin/admin-routing.module.ts b/index/src/app/view/admin/admin-routing.module.ts index 9053df7..bb185eb 100644 --- a/index/src/app/view/admin/admin-routing.module.ts +++ b/index/src/app/view/admin/admin-routing.module.ts @@ -8,7 +8,7 @@ const routes: Routes = [ { path: '', component: AdminComponent, - canActivate: [AuthGuard], + // canActivate: [AuthGuard], children: [ { path: 'article', diff --git a/index/src/app/view/admin/auth.guard.ts b/index/src/app/view/admin/auth.guard.ts index e0ec194..a226411 100644 --- a/index/src/app/view/admin/auth.guard.ts +++ b/index/src/app/view/admin/auth.guard.ts @@ -14,12 +14,14 @@ export class AuthGuard implements CanActivate { } userInfo: User; + visitCount: number = 0; // 记录一共走过几次canActivate private path: string; private readonly loginPath: string = '/user/login'; private observable: Observable; canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { this.path = state.url.indexOf('?') > 0 ? state.url.substr(0, state.url.indexOf('?')) : state.url; + this.visitCount++; this.observable = new Observable(observer => { if (!this.userInfo) { this.watchUserInfo(observer); @@ -58,6 +60,7 @@ export class AuthGuard implements CanActivate { case '/admin/visitor': if (this.userInfo.role !== 'admin') { observer.next(false) + if (this.visitCount === 1) this.router.navigateByUrl('/admin') return; } }