Ошибка броска 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;
}
});
}
}