No blogue desta semana, vamos centrar-nos no tópico crucial da autenticação. Para ilustrar a nossa discussão, utilizaremos o exemplo de uma aplicação concebida para escrever avaliações anuais de desempenho para os empregados. Esta aplicação permite que os utilizadores acessem de forma segura às suas contas, autenticando com o seu e-mail e palavra-passe.
Aplicação de avaliação de desempenho
Visão geral da autenticação
A autenticação é uma pedra angular de qualquer aplicação Web, garantindo que apenas os utilizadores autorizados podem aceder a informações sensíveis ou executar acções específicas. Em nosso exemplo, o processo de login é simples mas efetivo, demonstrando como 4D Qodly Pro lida com a autenticação de forma segura e eficiente.
O Processo de Login
O formulário de login está localizado na página “login” e consiste de:
- Dois campos de entrada: ligados ao email e à password dos recursos de dados.
- Um botão “Sign in” (Entrar): aciona o processo de autenticação.
No Qodly Studio, estão disponíveis outros modelos de formulários pré-construídos para a funcionalidade de início de sessão na seção de modelos dedicada. Estes modelos podem ser personalizados de acordo com os requisitos específicos da sua aplicação.
Função: authentify()
Quando o utilizador clica no botão “Iniciar sessão”, a função “ds.authentify()” é chamada com o e-mail e a palavra-passe como parâmetros.
As informações do utilizador, como o e-mail e a palavra-passe, são armazenadas na base de dados, na tabela “Employee”. Na função “authentify()”, é efetuada uma consulta simples da base de dados para verificar as informações.
Segue-se um código para ilustrar este processo:
exposed Function authentify($email: Text; $password: Text) : Text
$employee :=This.Employee.query("Email = :1"; $email).first()
If ($employee#Null)
If (Verify password hash($password; $employee.Password))
Session.setPrivileges("user")
Web Form .setMessage("Authentication successful")
Else
Web Form .setError("Authentication failed")
End if
Else
Web Form .setError("Authentication failed")
End if
Gerir os privilégios do utilizador
Antes de autenticar um utilizador, é vital restringir o acesso a dados e funções sensíveis. Esta segurança é garantida pela gestão de privilégios.
Primeiro, temos um privilégio denominado “none” (nenhum), que possui todos os direitos sobre a fonte de dados (ds), garantindo um acesso abrangente à base de dados. Este privilégio não é atribuído a nenhum utilizador, mantendo assim um ambiente seguro. Quando são concedidos direitos a um privilégio, estes são automaticamente revogados de todos os outros, protegendo efetivamente o sistema.
De seguida, adicionámos um privilégio chamado “authentify” (autenticar). A permissão “promover” é atribuída à função “ds.authentify()”. Isto significa que sempre que esta função é chamada, o privilégio “authentify” é automaticamente aplicado.
De seguida, garantimos que as permissões necessárias para a autenticação são adicionadas à classe de dados ou funções relevantes em utilização. No nosso exemplo, atribuímos as permissões “Read” (Ler) e “Execute” (Executar) à classe de dados “Employee” (Funcionário).
Por fim, ativamos a opção “Forçar início de sessão“. Essa opção permite controlar o número de sessões web abertas que requerem licenças 4D Client. Também pode fazer logout do utilizador a qualquer momento para diminuir o número de licenças retidas.
Esse sistema de privilégios multicamadas ajuda a prevenir acesso não autorizado e garante a operação segura da aplicação.
Para saber mais, consulte a nossa publicação no blogue: Forçar login se torna padrão para todas as autenticações REST.
Adicionando um recurso de logout
Para melhorar a experiência e a segurança do usuário, é importante fornecer uma opção de logout. No nosso exemplo:
- Um botão Logout é colocado no canto superior direito da página “Principal”.
- A ação “logout” é adicionada a este botão no evento “On Click”.
Isso permite que os utilizadores terminem a sua sessão de forma segura, eliminando quaisquer privilégios ativos e protegendo dados sensíveis.
Próximos passos
A autenticação e a gestão de privilégios são fundamentais para criar aplicações Web seguras. Para explorar melhor os recursos de autenticação e gerenciamento de privilégios, consulte os seguintes recursos:
- Documentação sobre:
- Blogs sobre:
Encorajamo-lo a tentar implementar estes conceitos nas suas próprias aplicações. Tem dúvidas ou ideias? Participe na discussão no fórum ou partilhe a sua opinião nos comentários abaixo. Fique atento ao próximo artigo da nossa série!