⚡ Improve service
This commit is contained in:
parent
3cd25790e3
commit
999eb1426c
@ -1,22 +1,27 @@
|
||||
import { inject } from '@angular/core';
|
||||
import { CanActivateChildFn, CanActivateFn, Router } from '@angular/router';
|
||||
import { UtilsService } from './utils.service';
|
||||
import { AuthService } from './auth.service';
|
||||
import { of, switchMap } from 'rxjs';
|
||||
import { inject } from "@angular/core";
|
||||
import { CanActivateFn, Router } from "@angular/router";
|
||||
import { UtilsService } from "./utils.service";
|
||||
import { AuthService } from "./auth.service";
|
||||
import { of, switchMap, take } from "rxjs";
|
||||
|
||||
export const AuthGuard: CanActivateFn | CanActivateChildFn = (_, state) => {
|
||||
export const AuthGuard: CanActivateFn = (_, state) => {
|
||||
const router: Router = inject(Router);
|
||||
const utilsService = inject(UtilsService);
|
||||
|
||||
return inject(AuthService)
|
||||
.isLoggedIn()
|
||||
.pipe(
|
||||
take(1),
|
||||
switchMap((authenticated) => {
|
||||
if (!authenticated) {
|
||||
const redirectURL =
|
||||
state.url === '/auth' ? '' : `redirectURL=${state.url}`;
|
||||
state.url === "/auth" ? "" : `redirectURL=${state.url}`;
|
||||
const urlTree = router.parseUrl(`auth?${redirectURL}`);
|
||||
utilsService.toast('error', 'Error', 'You must be authenticated');
|
||||
utilsService.toast(
|
||||
"warn",
|
||||
"Authentication required",
|
||||
"You must be authenticated",
|
||||
);
|
||||
return of(urlTree);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user