1- import { Routes } from '@angular/router' ;
1+ import { Router , Routes } from '@angular/router' ;
22import { inject } from '@angular/core' ;
33import { UserService } from './core/auth/services/user.service' ;
44import { 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+
616export 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