проверить информацию, прежде чем войти в ионное представление во всем мире - PullRequest
0 голосов
/ 11 июня 2018

Я видел, что официальная документация IONIC предлагает эти методы для проверки доступа или выхода из представления.

enter image description here

, но это сделанов каждом представлении я хотел бы знать, существует ли какой-либо метод или способ сделать это глобально, чтобы не делать это в виде на вид.например, я хотел бы проверить глобально, не вставляя ничего в какой-либо компонент, который, если в localstorage есть токен, перенаправляет меня на первый экран, иначе он позволит мне продолжить в текущем представлении.

Как можноЯ делаю это?Я новичок в этом, поэтому, пожалуйста, постарайтесь немного понять, если это не слишком много проблем.

в angular.js он сделал это следующим образом:

$transitions.onStart({}, trans => {});

1 Ответ

0 голосов
/ 11 июня 2018

Что вы можете сделать, это добавить охрану маршрута.

Вы просто добавите свойство canActivate на маршруты, которые хотите охранять.

Посмотрите на этот пример службы:

// src/app/auth/auth-guard.service.ts
import { Injectable } from '@angular/core';
import { Router, CanActivate } from '@angular/router';
import { AuthService } from './auth.service';
@Injectable()
export class AuthGuardService implements CanActivate {
  constructor(public auth: AuthService, public router: Router) {}
  canActivate(): boolean {
    if (!this.auth.isAuthenticated()) {
      this.router.navigate(['login']);
      return false;
    }
    return true;
  }
}

Служба внедряет AuthService и Router и имеет единственный метод с именем canActivate.Этот метод необходим для правильной реализации интерфейса CanActivate.

Метод canActivate возвращает логическое значение, указывающее, должна ли быть разрешена навигация к маршруту.Если пользователь не аутентифицирован, он перенаправляется в другое место, в этом случае маршрут называется /login.

И в файле, где у вас есть ваши маршруты:

export const ROUTES: Routes = [
  { path: '', component: HomeComponent },
  { 
    path: 'profile',
    component: ProfileComponent,
    canActivate: [AuthGuard] 
  }
];

Как видите, страница профиля имеет свойство canActivate.Вы просто добавите его в маршруты, которые хотите защитить.

Полная реализация здесь https://medium.com/@ryanchenkie_40935/angular-authentication-using-route-guards-bf7a4ca13ae3

...