После внедрения защиты несанкционированный URL-адрес возвращается на главный экран без данных - PullRequest
0 голосов
/ 18 октября 2018

Когда я запускаю угловое приложение, оно перенаправляет на страницу localhost: 4200 / events, где у меня есть данные для отображения.Теперь я реализовал службу защиты, как beforelogin & afterlogin, чтобы позволить пользователю получить доступ к определенной странице до и после входа в систему.

Пример: если пользователь не вошел в систему, и если пользователь нажимает URL «localhost: 4200 / special» напрямую, я хочу перенаправить его на страницу localhost: 4200 / events, но вместо этого он перенаправляет на страницу localhost: 4200,Я попытался отобразить данные на этом локальном узле: страница 4200, но данные не отображаются.

Вместо

path:'', redirectTo: 'events',

Я также попытался:

path:'', component: EventComponent

app-routing.module.ts

import { BeforeLoginGuard } from './guards/before-login.guard';
import { AfterLoginGuard } from './guards/after-login.guard';

const routes: Routes = [
    {
        path:'',
        redirectTo: 'events',
        pathMatch: 'full'
    },
    {
        path: 'login',
        component: LoginComponent,
        canActivate: [BeforeLoginGuard]
    },
    {
        path: 'signup',
        component: SignupComponent,
        canActivate: [BeforeLoginGuard]

    }
    {
        path: 'events',
        component: EventsComponent
    }

];

@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
})
export class AppRoutingModule { }

after-login.guard

export class AfterLoginGuard implements CanActivate {
    canActivate(
        next: ActivatedRouteSnapshot,
        state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {

        return this._tokenService.loggedIn();
    }

    constructor(private _tokenService: TokenService) { }
}

events.component

export class EventsComponent implements OnInit {

    events = [];

    constructor(private _eventService: EventService) { }

    ngOnInit() {
        this._eventService.getEvents()
            .subscribe(
                res => this.events = res,
                err => console.log(err)
            );
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...