auth.guard.ts 968 B

123456789101112131415161718192021222324252627282930313233343536
  1. import { Injectable } from '@angular/core';
  2. import {
  3. CanActivate,
  4. ActivatedRouteSnapshot,
  5. RouterStateSnapshot,
  6. } from '@angular/router';
  7. import { Observable } from 'rxjs';
  8. import { Router } from '@angular/router';
  9. import { textbookServer } from '../../services/textbook';
  10. @Injectable({
  11. providedIn: 'root',
  12. })
  13. export class AuthGuard implements CanActivate {
  14. LoginPage = '/user/login';
  15. constructor(private tbookSer: textbookServer, private router: Router) {}
  16. canActivate(
  17. next: ActivatedRouteSnapshot,
  18. state: RouterStateSnapshot
  19. ): Observable<boolean> | Promise<boolean> | boolean {
  20. // 当前路由url
  21. // let url: string = state.url;
  22. // console.log(url);
  23. return this.checkLogin();
  24. }
  25. checkLogin(): boolean {
  26. if (this.tbookSer.profile.identity == '工作联系人') {
  27. return true;
  28. }
  29. // 否则重定向到login页面
  30. this.router.navigate([this.LoginPage]);
  31. return false;
  32. }
  33. }
  34. export { CanActivate };