HyperServer e Autenticação HTTP

É possível trabalhar com HyperServer e aplicações que usam um dos métodos de autenticação HTTP disponíveis. O HyperServer retransmite de forma transparente todos os cabeçalhos relacionados para os Nodes e um Node pode iniciar uma sessão de autenticação HTTP como uma aplicação uniGUI regular. Isso significa que a autenticação real ocorrerá no código do usuário fornecido na aplicação Node.

Aqui está um código de autenticação de exemplo que permite que um único usuário faça login usando autenticação básica com nome de usuário e senha.

clip0360
ServerModule.pas
procedure TUniServerModule.UniGUIServerModuleHTTPCommand(ARequestInfo: TIdHTTPRequestInfo;
  AResponseInfo: TIdHTTPResponseInfo; var Handled: Boolean);
begin
  if ARequestInfo.AuthExists and
     (ARequestInfo.AuthPassword = '1234') and
     (ARequestInfo.AuthUsername = 'demo') then
  begin
    Exit; // Autenticação bem-sucedida
  end
  else
  begin
    // Solicitar autenticação
    AResponseInfo.AuthRealm := 'Insira as credenciais para ' + Title;
    AResponseInfo.ResponseNo := 401;
    Handled := True;
  end;
end;

Como o processo de autenticação é completamente sem estado, o HyperServer pode redirecionar as solicitações de autenticação para qualquer um dos Nodes ativos ou criar um novo Node para atender à solicitação.

Se a URL incluir uma aplicação HyperServer, então a solicitação será direcionada para o Node relacionado à aplicação.