Files
vue-pure-admin/frontend/angular-ts/src/app/auth.guard.ts

69 lines
1.8 KiB
TypeScript

import { Injectable } from '@angular/core';
import {
CanActivate,
CanActivateChild,
CanDeactivate,
CanLoad,
Route,
UrlSegment,
ActivatedRouteSnapshot,
RouterStateSnapshot,
UrlTree,
Router,
Resolve
} from '@angular/router';
import { Observable } from 'rxjs';
import { NgForage } from 'ngforage';
@Injectable({
providedIn: 'root',
})
export class AuthGuard implements CanActivate, CanActivateChild, CanDeactivate<unknown>, CanLoad, Resolve<any> {
constructor(
private ngForage: NgForage,
private router: Router
) {
}
canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
this.ngForage.getItem('TOKEN').then(res => {
if (!!!res) {
this.router.navigate(['login']);
this.ngForage.setItem('TOKEN', 'aaaa74654sdf4as6d4');
}
});
console.log(route);
console.log(state);
return true;
}
canActivateChild(
childRoute: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
console.log(childRoute);
console.log(state);
return true;
}
canDeactivate(
component: unknown,
currentRoute: ActivatedRouteSnapshot,
currentState: RouterStateSnapshot,
nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
return true;
}
canLoad(
route: Route,
segments: UrlSegment[]): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
return true;
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> | Promise<any> | any {
console.log(route);
console.log(state);
}
}