Skip to content

Commit d051d4b

Browse files
committed
fix: add error interceptor redirection mechanism
1 parent 1a38c6f commit d051d4b

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/app/app.routes.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
1-
import { Routes } from '@angular/router';
1+
import { Router, Routes } from '@angular/router';
22
import { inject } from '@angular/core';
33
import { UserService } from './core/auth/services/user.service';
44
import { map } from 'rxjs/operators';
55

6+
/**
7+
* Guard that requires authentication. Redirects to /login if not authenticated.
8+
*/
9+
const requireAuth = () => {
10+
const router = inject(Router);
11+
return inject(UserService).isAuthenticated.pipe(
12+
map(isAuth => isAuth || router.createUrlTree(['/login']))
13+
);
14+
};
15+
616
export const routes: Routes = [
717
{
818
path: '',
@@ -25,7 +35,7 @@ export const routes: Routes = [
2535
{
2636
path: 'settings',
2737
loadComponent: () => import('./features/settings/settings.component'),
28-
canActivate: [() => inject(UserService).isAuthenticated],
38+
canActivate: [requireAuth],
2939
},
3040
{
3141
path: 'profile',
@@ -37,12 +47,12 @@ export const routes: Routes = [
3747
{
3848
path: '',
3949
loadComponent: () => import('./features/article/pages/editor/editor.component'),
40-
canActivate: [() => inject(UserService).isAuthenticated],
50+
canActivate: [requireAuth],
4151
},
4252
{
4353
path: ':slug',
4454
loadComponent: () => import('./features/article/pages/editor/editor.component'),
45-
canActivate: [() => inject(UserService).isAuthenticated],
55+
canActivate: [requireAuth],
4656
},
4757
],
4858
},

0 commit comments

Comments
 (0)