Guarda de Rota

Protegendo as rotas do seu projeto com o ModularBr.

O Guarda de Rota do ModularBr é um middleware que tem uma funcionalidade muito importante para garantir a segurança das rotas de uma aplicação. Basicamente, ele permite que você crie uma lógica de autenticação ou autorização para que apenas usuários com as permissões adequadas possam acessar determinadas rotas.

Por exemplo, imagine que você tem uma rota para acessar informações confidenciais de usuários, como dados bancários ou informações de saúde. Com o Guarda de Rota, você pode criar uma verificação para garantir que apenas usuários autorizados possam acessar essa rota, protegendo assim essas informações.

Para utilizar o Guarda de Rota no ModularBr, basta criar uma classe herdando de TRouteMiddleware e implementar o método Call que é uma class function booleana que será responsável por verificar se o usuário tem as permissões necessárias para acessar a rota. Essa função pode verificar informações como o tipo de usuário, nível de acesso ou quaisquer outras informações relevantes para a sua aplicação.

Em seguida, basta adicionar essa classe ao método RouteModule() da rota. Assim, sempre que alguém tentar acessar essa rota, a função da classe será executada para verificar se o usuário tem as permissões necessárias.

Com o Guarda de Rota, você pode ter certeza de que suas rotas estão protegidas e que apenas usuários autorizados terão acesso a informações sensíveis da sua aplicação.

Exemplo de uso:

unit app.module;

interface

uses
  dmfbr.module,
  nfe.module;

type
  TGardNFeMiddleware = class(TRouteMiddleware)
  public
    class function Call(const AReq: IRouteRequest): boolean; override;
  end;
  
  TAppModule = class(TModule)
  public
    function Routes: TRoutes; override;
  end;

implementation

{ TAppModule }

function TAppModule.Routes: TRoutes;
begin
  // Rotas
  Result := [RouteModule('/nfe/:id', TNFeModule, [TGardNFeMiddleware])];
end;

{ TGardNFeMiddleware }

class function TGardNFeMiddleware.Call(const AReq: IRouteRequest): boolean;
begin
  Result := (AReq.Username = 'user') and (AReq.Password = '123456');
end;

end.

Last updated