Проверка подлинности для перенаправления страницы входа в угловой 6? - PullRequest
0 голосов
/ 03 января 2019

enter image description here

Здесь In Angular, когда я на странице входа в систему в то время мой URL-адрес входа в систему http://localhost:3000/login, и теперь я изменяю без входа в систему, как это http://localhost:3000/base/dashboard (this is right url), поэтому без входа в систему он не перенаправляет на страницу панели инструментов, это вход в систему на странице входа в систему, но когда я поставить неправильный URL без логина, как это http://localhost:3000/defrtfg, но он перенаправляет на pageNotFoundComponent(see below screenshot), но я хочу перенаправить на страницу входа, когда я не вошел в систему, как это возможно?

Authgaurd.guard.ts

import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router, ActivatedRoute } from '@angular/router';
import { Observable } from 'rxjs';
import { UserService } from './services/user.service';

@Injectable({
  providedIn: 'root'
})
export class AuthguardGuard implements CanActivate{
constructor (private router : Router) {}

canActivate(
  next: ActivatedRouteSnapshot,
  state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
    if(localStorage.getItem('username')){  
       return true;
    }else{
      this.router.navigate(['/login']);
      return false;
    }
  }
}

приложение-routing.module.ts

const routes: Routes = [
 { path: '', redirectTo: 'login', pathMatch: 'full' },
 { path: 'login', component : LoginFormComponent },   
 { path : 'base', component : BaseComponent,canActivate : [AuthguardGuard],
 children: [
   { path: '', redirectTo: 'dashboard', pathMatch: 'full' },    
   { path: 'dashboard', component : DashboardComponent },
 ]},
  { path: '**', component : PageNotFoundComponent },   
];

1 Ответ

0 голосов
/ 03 января 2019

Попробуйте это:

{ path: '**', component : PageNotFoundComponent, canActivate : [AuthguardGuard]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...