Как перенаправить пользователя в зависимости от его типа при входе в систему? - PullRequest
0 голосов
/ 26 июня 2019

Я разрабатываю приложение для школьного транспорта с Ionic 4 и Firebase. Firebase имеет функцию аутентификации, и в приложении есть реестр различных пользователей (таких как драйвер, студент, компания / adm) с использованием ссылок на идентификаторы (где идентификатор, сгенерированный аутентификацией, ссылается в соответствии с пользователем) , С этим я попал в проблему, что я ломаю голову. Как перенаправить пользователей каждого типа на соответствующую страницу в соответствии с их функциями после входа в систему?

1 Ответ

0 голосов
/ 27 июня 2019

Вы можете перенаправить, используя guard и local Storage

import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';
import { Observable } from 'rxjs';

@Injectable()
export class AuthGuard implements CanActivate {
  constructor(private router: Router) {
  }
  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
      const token = localStorage.getItem('token');
      const role = localStorage.getItem('id');

    if (role === 'driver' && !!token) {
      this.router.navigate(['/driver']);
      return true
    } else if (role === 'student' && !!token) {
      this.router.navigate(['/student']);
      return true
    } else if (role === 'student' && !!token) {
      this.router.navigate(['/student']);
      return true
    } else if (role === 'admin' && !!token) {
      this.router.navigate(['/admin']);
      return true
    } else {
      this.router.navigate(['/login']);
      return false
    }
    return false
  }
}

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