20 lines
621 B
TypeScript
20 lines
621 B
TypeScript
import { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot, UrlTree } from '@angular/router';
|
|
import { AuthGuardData, createAuthGuard } from 'keycloak-angular';
|
|
|
|
export async function isAuthenticated(
|
|
_route: ActivatedRouteSnapshot,
|
|
state: RouterStateSnapshot,
|
|
authData: AuthGuardData
|
|
): Promise<boolean | UrlTree> {
|
|
const { authenticated, keycloak } = authData;
|
|
|
|
if (!authenticated) {
|
|
await keycloak.login({ redirectUri: window.location.origin + state.url });
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
export const requireAuthGuard: CanActivateFn = createAuthGuard<CanActivateFn>(isAuthenticated);
|