0

ngx admin を使用して、nebular を使用する管理パネルを作成します。次のドキュメントに従って authGard を追加します:
docs

これはログインをカスタマイズするためのものです:
docs2

すべてが正しく機能し、成功メッセージが表示されます。 画像

しかし、autogardでfalseになります:
img2

私が使用するコード:

@NgModule({
  declarations: [
    AppComponent,
  ],
  providers: [
    AuthGuard,
  ],
  imports: [
    ***
  ],
  bootstrap: [AppComponent],
})
export class AppModule {
}

//**********

@Injectable()
export class AuthGuard implements CanActivate {

  constructor(private authService: NbAuthService, private router: Router) {
  }

  canActivate() {
    console.log(this.authService.isAuthenticated());
    return this.authService.isAuthenticated()
      .pipe(
        tap(authenticated => {
          if (!authenticated) {
            console.log(authenticated);
            this.router.navigate(['auth/login']);
          }
        }),
      );
  }
}

//**********

const routes: Routes = [
  {
    path: 'pages',
    canActivate: [AuthGuard],
    loadChildren: () => import('./pages/pages.module')
      .then(m => m.PagesModule),
  },
  {
    path: 'auth',
    loadChildren: () => import('./auth/auth.module').then(m => m.NgxAuthModule),
  },
  { path: '', redirectTo: 'pages', pathMatch: 'full' },
  { path: '**', redirectTo: 'pages' },
];

4

1 に答える 1