4. Segurança
O Cat UI possui um Guardião próprio, onde já integra com o fluxo de autenticação também nativo, seja utilizando JWT ou OpenID
.
Uso
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { CatAuthGuard } from '@catrx/ui';
import { PageExampleComponent } from './page-example.component';
const routes: Routes = [
{ path: '', component: PageExampleComponent, canActivate: [CatAuthGuard] },
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class PageFormRoutingModule {}
Politicas
Visando rotas mais profundas e que precisam também ter a permissão validada (como rotas de edição de dados), foi criado o sistema de políticas que já está acoplado ao Guardião.
Sempre que quiser proteger uma rota, utilize o Guardião, porém, o mesmo irá por padrão validar apenas se o usuário encontra-se autenticado e se a rota acessada encontra-se liberada no menu, caso contrário, ele irá validar nas políticas (se a mesma possui permissão), caso não tenha políticas configuradas ou a rota não esteja liberada, a mesma será recusada.
Uso das políticas
import { Injectable } from '@angular/core';
import { AppConfigMenu, AppNotification, CatAppDecodedToken, CatRoutePolice } from '@catrx/ui';
import { Observable } from 'rxjs/internal/Observable';
@Injectable({ providedIn: 'any' })
export class AppService {
...
public getMenu(decodedToken: CatAppDecodedToken) {
this.buildPolices(decodedToken);
...
}
private buildPolices(decodedToken: CatAppDecodedToken) {
CatRoutePolice.police = (path: string) => {
return (
decodedToken &&
!!['/components/toolbar/'].find(
(validPath) => path.indexOf(validPath) >= 0
)
);
};
}
}
Last updated
Was this helpful?