Skip to content

FilamentPHP plugin for Laravel 12 to limit users to one active session. Features a confirmation modal, configurable notifications (mail, database, broadcast), and translations (en, pt_BR)

Notifications You must be signed in to change notification settings

alessandronuunes/filament-single-session

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Single Session Plugin para FilamentPHP

Plugin que implementa limitação de sessão única por usuário no FilamentPHP com Laravel 12.

Características

  • ✅ Uma sessão ativa por usuário
  • ✅ Modal de confirmação nativo do Filament
  • ✅ Notificações configuráveis (mail, database, broadcast)
  • ✅ Traduções em inglês e português brasileiro
  • ✅ Solução plug-and-play
  • ✅ Sem dependências externas

Instalação

  1. Instale o pacote via Composer:
composer require alessandronuunes/single-session
  1. Publique e execute as migrações:
php artisan vendor:publish 
--tag="single-session-migrations"
php artisan migrate
  1. (Opcional) Publique as traduções:
php artisan vendor:publish 
--tag="single-session-translations"
  1. (Opcional) Publique a configuração:
php artisan vendor:publish 
--tag="single-session-config"

Configuração

No seu AdminPanelProvider , registre o plugin:

use 
Alessandronuunes\SingleSession\Filament\SingleSessionPl
ugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->default()
        ->id('admin')
        ->path('admin')
        ->plugin(SingleSessionPlugin::make()
            ->notificationChannels(['mail', 
            'database'])
        );
}

Canais de Notificação

  • mail : Envia e-mail quando sessão é encerrada
  • database : Armazena notificação no banco de dados
  • broadcast : Envia notificação em tempo real

Configuração de E-mail

Configure as variáveis de ambiente no .env :

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=seu-email@gmail.com
MAIL_PASSWORD=sua-senha
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@seudominio.com
MAIL_FROM_NAME="Sistema"

Como Funciona

  1. Novo Login : Se detectada sessão ativa, exibe modal de confirmação
  2. Confirmação : Encerra sessão anterior e envia notificações
  3. Cancelamento : Invalida nova sessão e redireciona
  4. Logout : Limpa automaticamente o session_id do usuário

Segurança

  • Usa autenticação nativa do Laravel
  • Gerenciamento seguro de sessões
  • Notificações de segurança automáticas
  • Logs de atividade de sessão

Licença

MIT License

About

FilamentPHP plugin for Laravel 12 to limit users to one active session. Features a confirmation modal, configurable notifications (mail, database, broadcast), and translations (en, pt_BR)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages