-เพิ่ม guard jwt token
-เพิ่ม jwt-decoded -เพิ่ม ระบบ first setup ดึงข้อมูล accounting
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user