alessandronuunes / single-session
Plugin de sessão única para FilamentPHP com Laravel 12
dev-main
2025-05-29 08:54 UTC
Requires
- php: ^8.2
- filament/filament: ^3.0
- laravel/framework: ^11.0|^12.0
This package is not auto-updated.
Last update: 2025-06-27 07:41:46 UTC
README
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
- Instale o pacote via Composer:
composer require alessandronuunes/single-session
- Publique e execute as migrações:
php artisan vendor:publish
--tag="single-session-migrations"
php artisan migrate
- (Opcional) Publique as traduções:
php artisan vendor:publish
--tag="single-session-translations"
- (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
- Novo Login : Se detectada sessão ativa, exibe modal de confirmação
- Confirmação : Encerra sessão anterior e envia notificações
- Cancelamento : Invalida nova sessão e redireciona
- 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