Проблемы с угловыми маршрутами - сначала переходит на главную страницу вместо входа в систему даже после уничтожения файлов cookie - PullRequest
0 голосов
/ 27 марта 2019

Я делаю угловой вход в систему, когда служба использует php api и возвращает токен в ответе, поэтому этот токен я сохраняю в cookie-файле, используя angular ngx cookie, я могу установить, получить и уничтожить cookie-файл.Проблема здесь в том, что я не могу получить маршрут к входу в систему, он напрямую переходит на страницу внутри, а не направляется на вход в систему.Маршрут, по которому он перемещается без входа в систему, является следующим путем: '', компонент: PagesComponent, Присоединяемый код ниже Компонент входа

ngOnInit(): void {

        this.loginForm = this.fb.group({
            username: [, [Validators.required]],
            password: [, [Validators.required]],
        })

    onSubmit() {
        let formValue: any = {
            user_code: this.loginForm.value.username,
            password: this.loginForm.value.password,
            // user_code: "INC01",
            // password:  "uatxyz",
        }
}
        //console.log(formValue)
        let key = 'Item 1';

        this.policyService.getLoginUser(formValue)

            .pipe()
            .subscribe(logindata => {
                this.logindata = logindata,
                    console.log('logindata: ', logindata); 
                (error: any) => this.errorMessage = <any>error;
                this.cookieService.set('Test', this.logindata.data.token);
                this.cookieValue = this.cookieService.get('Test');
                console.log(this.cookieService.get('Test'));
                 console.log(this.cookieService.get('Test'));
                this.router.navigateByUrl('/dlr');
            }
            )
    }

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

const routes: Routes = [

{
    path: '',
    component: PagesComponent,
 data :{
                redirectTo: '/login'

    },


    children: [
        {
            path: 'dlr',
            loadChildren: './components/dashboard/dashboard.module#DashboardModule'
        },

        {
            path: 'mail',
            loadChildren: './components/apps/mail/mail.module#MailModule'
        },
        {
            path: 'ecommerce',
            loadChildren: './components/apps/e-commerce/e-commerce.module#ECommerceModule'
        },

        {
            path: 'ngbootstrap',
            loadChildren: './components/ngbootstrap/ngbootstrap.module#NgbootstrapModule'
        },
        {
            path: 'material',
            loadChildren: './components/material/material.module#MaterialModule'
        },
        {
            path: 'metronic',
            loadChildren: './components/metronic/metronic.module#MetronicModule'
        },

        {
            path: 'profile',
            component: ProfileComponent
        },

    ]
},
{
    path: 'login',
    loadChildren: './auth/auth.module#AuthModule',

},
{
    path: '404',
    component: ErrorPageComponent
},
{
    path: 'error/:type',
    component: ErrorPageComponent
},

];

Служба входа

  getLoginUser(formValue): Observable<PolicyData[]> {
  const headers = new HttpHeaders({ 'Content-Type': 'application/json'});
  let body = {"auth": { "accesskey": "TTIBI", "signature": "" }, "data": formValue};
  console.log(formValue)
  return this.http
  .post<PolicyData[]>(this.apiphpUrl + this.loginUrl, body, { headers: headers })
    .pipe(
      tap(data => console.log(' LoginUser: ' + JSON.stringify(data))),
      catchError(this.handleError),

    );
}

Компонент выхода из системы

getLogoutUser(){
        this.policyService.getLogoutUser().pipe()
            .subscribe(logoutdata => {
                this.logoutdata = logoutdata,
                    console.log('logoutdata: ', logoutdata); //
                (error: any) => this.errorMessage = <any>error;
                this.router.navigateByUrl('/login');
                console.log(this.cookieService.get('Test'))
                this.cookieService.delete('test');
console.log(this.cookieService.delete('test'));


        }
            )

    }
...