From b45f3f16e3654f63d42c7afc44067fd35a4ba721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 21:12:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AC=AC=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E4=B8=8D=E9=80=9A=E8=BF=87=E6=97=B6=E5=8D=A1?= =?UTF-8?q?=E5=9C=A8=E7=A9=BA=E7=99=BD=E9=A1=B5=E9=9D=A2=E7=9A=84=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/view/admin/admin-routing.module.ts | 2 +- index/src/app/view/admin/auth.guard.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) 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; } }