После входа в систему / логин должен перенаправить на домашнюю страницу - PullRequest
0 голосов
/ 08 мая 2020

Проблема:

После успешного входа пользователя в систему он переходит на домашнюю страницу. Опять же, если пользователь пытается / войти по URL-адресу, он возвращается на страницу входа. Если вы уже вошли в систему, он должен перейти на домашнюю страницу, а не на страницу входа. Как я могу этого добиться.

Это мои маршруты

const routes: Routes = [
  { path: '', redirectTo: 'home', pathMatch: 'full' },
   { path: 'home', component: HomeComponent, canActivate: [AuthGuard] },
   { path: 'login', component: LoginComponent },
   { path: '**', redirectTo: '' }
 ];

Служба защиты авторизации.

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
        const currentUser = this.authenticationService.currentUserValue;

        console.log("current User 2:"+currentUser);

        if (currentUser) {
            // logged in so return true
            return true;
        }

        // not logged in so redirect to login page with the return url
        this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });
        return false;
    }

1 Ответ

1 голос
/ 08 мая 2020

Вы можете защитить свою страницу входа следующим образом:

Guard:

constructor(private authenticationService: AuthenticationService){}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
        return !this.authenticationService.isLoggedIn();
    }

Модуль маршрутизации:

{ path: 'login', component: LoginComponent, canActivate: [LoginGuard] }
...