Auditando Login e Logout de usuários no Laravel

Bem, este é meu primeiro poste então espero que relevem qualquer gafe que eu venha a cometer neste artigo, porém todo comentário construtivo é bem vindo :D.

Neste artigo estou trazendo uma forma simples de auditar eventos do usuário em um sistema desenvolvido com o Laravel. No exemplo que irei utilizar vamos registrar no banco de dados os logs do usuário sempre que ele entrar ou sair do sistema.

Suponho que você já possui conhecimento em Laravel e também tem um projeto criado, por isso irei pular a instalação e configuração do projeto e do banco de dados para seguirmos direto ao objetivo deste artigo.

Vamos por etapas:

Primeiro passo:

Vamos roda o comando php artisan make:model Audit -m para criar nossas queridas model e migration.

  • Na migration você coloca o seguinte código:

Acima temos o campo type que vai nos informar se foi realizado Login ou Logout, o campo description será uma breve descrição do que foi auditado e o user_id como já imagina é para registrar o usuário que está realizando a ação.

Você pode adicionar mais campos de acordo com suas necessidades ou preferências.

  • Na model você vai inserir o seguinte código:

Agora, para finalizar esta etapa basta rodar o comando php artisan migrate para gerar a tabela audit no banco de dados.


Segundo passo:

Agora vamos criar 2 listeners (um de Login e outro de Logout).

Os listeners irão “ouvir” os eventos do usuário e executar algo quando ele efetuar login ou logout.

execute os dois comandos a seguir para criar nossos listeners:

  • php artisan make:listener Audit/LogSuccessfulLogin
  • php artisan make:listener Audit/LogSuccessfulLogout

Edite o arquivo app/Listeners/Audit/LogSuccessfulLogin.php inserindo as seguintes informações:

Edite o arquivo app/Listeners/LogSuccessfulLogout.php inserindo as seguintes informações:


Terceiro passo:

Agora precisamos registrar os listeners no arquivo app/Providers/EventServiceprovider.php


Caso sua aplicação ainda não possui as funcionalidades de autenticação você poderá rodar o scaffold do Laravel usando o comando php artisan make:auth e ser feliz testando.

Espero que este artigo contribua de alguma forma em sua vida. Também gostaria que comenta-se com dicas do que eu posso melhorar nos próximos que ainda virão.

Até uma próxima! :)