PHPackages                             smony/filament-login-attempts - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Security](/categories/security)
4. /
5. smony/filament-login-attempts

ActiveLibrary[Security](/categories/security)

smony/filament-login-attempts
=============================

Log login attempts to your Filament admin panel and protect it from brute-force attacks.

v1.0.0(1mo ago)251MITPHPPHP ^8.2

Since Jul 4Pushed 1mo agoCompare

[ Source](https://github.com/Smony/filament-login-attempts)[ Packagist](https://packagist.org/packages/smony/filament-login-attempts)[ Docs](https://github.com/smony/filament-login-attempts)[ RSS](/packages/smony-filament-login-attempts/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Filament Login Attempts
=======================

[](#filament-login-attempts)

[![Filament Login Attempts](art/banner.png)](art/banner.png)

[![Latest Version](https://camo.githubusercontent.com/0f4ca890c71fda777216c48e982e9b9d238fffcb77df3426b9c54bd296206f27/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736d6f6e792f66696c616d656e742d6c6f67696e2d617474656d7074732e737667)](https://packagist.org/packages/smony/filament-login-attempts)[![Total Downloads](https://camo.githubusercontent.com/f99ebb638268e630e6fed1228c58b882514999a4a264adfac921713d0b629abb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736d6f6e792f66696c616d656e742d6c6f67696e2d617474656d7074732e737667)](https://packagist.org/packages/smony/filament-login-attempts)[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE.md)

Log every login attempt to your Filament admin panel and lock out brute-force attackers automatically, right from your Filament admin panel.

Requirements
------------

[](#requirements)

- PHP 8.2+
- Filament v4

Installation
------------

[](#installation)

```
composer require smony/filament-login-attempts
```

Publish and run the migration:

```
php artisan vendor:publish --tag=filament-login-attempts-migrations
php artisan migrate
```

Register the plugin in your Panel Provider:

```
use Smony\FilamentLoginAttempts\FilamentLoginAttemptsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(FilamentLoginAttemptsPlugin::make());
}
```

What you get
------------

[](#what-you-get)

- A **Login Attempts** page listing every login attempt: email, matched user (or "Guest"), IP address, parsed device/browser, success/failure, and when it happened
- **Brute-force protection**: after a configurable number of failed attempts, the offending IP, email, or IP+email combination is locked out for a configurable duration — enforced via Laravel's `RateLimiter`, the same mechanism behind the framework's own login throttling
- A **"Currently locked out"** filter and an **"Unlock now"** action to lift a lockout early
- A **stats widget** showing failed attempts in the last 24 hours and how many keys are currently locked out
- A **`login-attempts:prune`** artisan command to delete attempts older than your retention window
- A `Smony\FilamentLoginAttempts\Events\LoginLockedOut` event, dispatched the moment a key gets locked out — listen for it in your app to send your own notification (Slack, email, etc.):

```
use Smony\FilamentLoginAttempts\Events\LoginLockedOut;

Event::listen(LoginLockedOut::class, function (LoginLockedOut $event) {
    // $event->key, $event->email, $event->ipAddress, $event->lockedForMinutes
});
```

Configuration
-------------

[](#configuration)

Publish the config to customize thresholds, the lockout key strategy, and retention:

```
php artisan vendor:publish --tag=filament-login-attempts-config
```

```
return [
    'table' => 'login_attempts',
    'max_attempts' => 5,
    'decay_minutes' => 10,
    'lockout_minutes' => 15,
    'lockout_strategy' => 'ip_and_email', // ip | email | ip_and_email
    'retention_days' => 30,
];
```

Schedule the prune command in your app's console kernel/scheduler to keep the table from growing indefinitely:

```
$schedule->command('login-attempts:prune')->daily();
```

License
-------

[](#license)

MIT

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance90

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

48d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/829dd222d51ab9b4ea78f272ea0b844e255eea0f3d90f70db9dcb266c848c709?d=identicon)[Smony](/maintainers/Smony)

---

Tags

laravelsecurityloginbrute forcefilament

### Embed Badge

![Health badge](/badges/smony-filament-login-attempts/health.svg)

```
[![Health](https://phpackages.com/badges/smony-filament-login-attempts/health.svg)](https://phpackages.com/packages/smony-filament-login-attempts)
```

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3915.5k](/packages/rawilk-profile-filament-plugin)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16429.7k](/packages/backstage-mails)[marcelweidum/filament-passkeys

Use passkeys in your filamentphp app

6758.2k2](/packages/marcelweidum-filament-passkeys)[mradder/filament-logger

Audit logging, activity tracking, exports, alerts, and dashboards for Filament admin panels.

2324.4k1](/packages/mradder-filament-logger)[wallacemartinss/filament-security

Security plugin for Filament v5 - Disposable email blocking, honeypot protection, and Cloudflare IP blocking

309.0k](/packages/wallacemartinss-filament-security)[ercogx/laravel-filament-starter-kit

This is a Filament v5 Starter Kit for Laravel 13, designed to accelerate the development of Filament-powered applications.

471.8k](/packages/ercogx-laravel-filament-starter-kit)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
