Horse Basic Auth
O Horse Basic Auth é um middleware para você trabalhar com Basic Authentication em suas APIs.
⚙️ Instalação
Você pode instalar facilmente utilizando o comando boss install
:
boss install horse-basic-auth
Ou, se você preferir instalar manualmente, basta adicionar as pastas em seu projeto, em Project > Options > Resource Compiler > Directories and Conditionals > Include file search path:
../horse-basic-auth/src
✔️ Compatibilidade
Delphi | Lazarus |
---|---|
✔️ | ✔️ |
🤙 Exemplos de Uso
uses
Horse,
Horse.BasicAuthentication, // Está unit é necessária
System.SysUtils;
begin
// Necessário para adicionar o Middleware no Horse:
THorse.Use(HorseBasicAuthentication(
function(const AUsername, APassword: string): Boolean
begin
// Aqui dentro você pode acessar seu banco de dados e validar se usuário e senha são válidos
Result := AUsername.Equals('user') and APassword.Equals('password');
end));
// O cabeçalho padrão para receber credenciais é "Authorization".
// Você pode alterar, se necessário:
// THorse.Use(HorseBasicAuthentication(MyCallbackValidation, THorseBasicAuthenticationConfig.New.Header('X-My-Header-Authorization')));
// Você também pode ignorar rotas:
// THorse.Use(HorseBasicAuthentication(MyCallbackValidation, THorseBasicAuthenticationConfig.New.SkipRoutes(['/ping'])));
THorse.Get('/ping',
procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
begin
Res.Send('pong');
end);
THorse.Listen(9000);
end;
{$MODE DELPHI}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Horse,
Horse.BasicAuthentication, // Está unit é necessária
SysUtils;
procedure GetPing(Req: THorseRequest; Res: THorseResponse; Next: TNextProc);
begin
Res.Send('Pong');
end;
function DoLogin(const AUsername, APassword: string): Boolean;
begin
// Aqui dentro você pode acessar seu banco de dados e validar se usuário e senha são válidos
Result := AUsername.Equals('user') and APassword.Equals('password');
end;
begin
// Necessário para adicionar o Middleware no Horse:
THorse.Use(HorseBasicAuthentication(DoLogin));
// O cabeçalho padrão para receber credenciais é "Authorization".
// Você pode alterar, se necessário:
// THorse.Use(HorseBasicAuthentication(MyCallbackValidation, THorseBasicAuthenticationConfig.New.Header('X-My-Header-Authorization')));
// Você também pode ignorar rotas:
// THorse.Use(HorseBasicAuthentication(MyCallbackValidation, THorseBasicAuthenticationConfig.New.SkipRoutes(['/ping'])));
THorse.Get('/ping', GetPing);
THorse.Listen(9000);
end.
📌 Status Code
Este middleware pode retornar os seguintes Status Code:
⚠️ Avisos
- Link para o repositório: https://github.com/HashLoad/horse-basic-auth.
- Caso tenha alguma sugestão, envie um Pull Request.
- O
Horse Basic Auth
é gratuito e Open Source, está licenciado pela MIT License.