py-learn / src /app /auth /auth.guard.ts
Oviya
Deploy Angular to HF Space
e4ab6d0
import { inject } from '@angular/core';
import { CanActivateFn, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { AuthService } from './auth.service';
import { map, catchError } from 'rxjs/operators';
import { of } from 'rxjs';
export const authGuard: CanActivateFn = (
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
) => {
const authService = inject(AuthService);
const router = inject(Router);
return authService.checkSession().pipe(
map(() => {
if (authService.isLoggedIn()) {
return true;
} else {
localStorage.setItem('redirectAfterLogin', state.url);
router.navigate(['/auth']);
return false;
}
}),
catchError(() => {
localStorage.setItem('redirectAfterLogin', state.url);
router.navigate(['/auth']);
return of(false);
})
);
};