Ошибка броска Angular Router Guard

Проблема [решена], см. "Сбои, когда" AuthGuard падает, когда несколько, если добавлены операторы / вращатели.

Рабочий сценарий У меня есть рабочий AuthGuard, который перенаправляет пользователей, если они не вошли на страницу входа.

Сбой, когда EDIT : Reason for crash : Stupidity. I used the same authguard for the resetpass. Leaving it here in case anyone makes the same mistake in haste. Я хочу проверить свойство пользователя "firstlogin" и перенаправить пользователя на страницу сброса пароля в случае, если это его / ее первый вход в систему. Ниже приведен код, который продолжает сбой. Есть ли способ реализовать это с AuthGuard или следует рассмотреть какой-то другой способ?

import {Injectable} from "@angular/core";
import {CanActivate, Router} from "@angular/router";
import {BaseAuthService} from "./baseauth.service";
import 'rxjs/add/operator/map';

@Injectable()
export class AuthGuard implements CanActivate {

  constructor(private auth: BaseAuthService, private router: Router) {
  }

  canActivate() {
    return this.auth.appUser$.map(user => {
      if (user) {
        if (user.firstlogin) {
          this.router.navigate(['/resetpass']);
          return false;
        }
        return true;
      } else {
        this.router.navigate(['/login']);
        return false;
      }
    });
  }

}

0 ответов

Другие вопросы по тегам