horse-basic-auth is a official middleware for working with basic authentication in APIs developed with the Horse framework.
We created a channel on Telegram for questions and support:
Installation is done using the boss install command:
$ boss install horse-basic-authIf you choose to install manually, simply add the following folders to your project, in Project > Options > Resource Compiler > Directories and Conditionals > Include file search path
../horse-basic-auth/src
This middleware is compatible with projects developed in:
- Delphi
- Lazarus
uses
Horse,
Horse.BasicAuthentication, // It's necessary to use the unit
System.SysUtils;
begin
// It's necessary to add the middleware in the Horse:
THorse.Use(HorseBasicAuthentication(
function(const AUsername, APassword: string): Boolean
begin
// Here inside you can access your database and validate if username and password are valid
Result := AUsername.Equals('user') and APassword.Equals('password');
end));
// The default header for receiving credentials is "Authorization".
// You can change, if necessary:
// THorse.Use(HorseBasicAuthentication(MyCallbackValidation, THorseBasicAuthenticationConfig.New.Header('X-My-Header-Authorization')));
// You can also ignore routes:
// 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;This middleware can return the following status code:
horse-basic-auth is free and open-source middleware licensed under the MIT License.