Files
micro-frontend/accounting-ng-nuttakit/src/app/services/auth.guard.ts
x2Skyz f25488370a -เพิ่ม guard jwt token
-เพิ่ม  jwt-decoded
-เพิ่ม  ระบบ first setup ดึงข้อมูล  accounting
2025-11-13 11:45:03 +07:00

33 lines
859 B
TypeScript

import { inject } from '@angular/core';
import { CanActivateFn, Router } from '@angular/router';
import { jwtDecode } from 'jwt-decode';
export const authGuard: CanActivateFn = (route, state) => {
const router = inject(Router);
const accessToken = localStorage.getItem('access_token');
if (accessToken) {
try {
const decodedToken: any = jwtDecode(accessToken);
const currentTime = Date.now() / 1000;
if (decodedToken.exp < currentTime) {
// Token expired
localStorage.removeItem('access_token');
router.navigate(['/login']);
return false;
}
return true;
} catch (error) {
// Error decoding token
localStorage.removeItem('access_token');
router.navigate(['/login']);
return false;
}
} else {
router.navigate(['/login']);
return false;
}
};