-เพิ่ม guard jwt token

-เพิ่ม  jwt-decoded
-เพิ่ม  ระบบ first setup ดึงข้อมูล  accounting
This commit is contained in:
2025-11-13 11:45:03 +07:00
parent fe028d274b
commit f25488370a
3 changed files with 60 additions and 19 deletions

View File

@@ -1,12 +1,30 @@
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) {
return true;
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;