label84/laravel-auth-log
Laravel Auth Log adds an audit trail for authentication activity in Laravel apps. It records successful logins, logouts, and failed attempts with useful context, making it easy to review and query auth history through a clean Eloquent model and configurable setup.
label84/laravel-auth-log persists authentication events (successful logins, logouts, failed attempts) to a database table, giving product and security teams an auditable trail without building an event-listener subsystem from scratch. This directly supports decisions around SOC 2 / ISO 27001 readiness, GDPR "access logging" obligations, and internal security review findings.Auth events plus a migration and model. The realistic comparison isn't "build vs. buy a vendor product," it's "spend a sprint building and maintaining this internals glue vs. pull a ~one-file dependency." For most teams the package wins on cost; for teams with strict data-retention, multi-tenant, or anomaly-detection needs, it becomes a starting point to fork or wrap.Consider it when:
Look elsewhere or build in-house when:
Release-specific note: v1.4.1 is a compatibility patch (Laravel 13 support, contribution by @tjardoo). No breaking changes, no new features, no deprecations. Upgrading is low-risk; pinning to ^1.4 is reasonable.
For executives: We can close a meaningful piece of our security-logging gap for roughly the cost of a code review rather than an engineering sprint. It records who logged in, who failed, and when — the evidence auditors ask for — and it stays inside our own database, so no new vendor, no data-processing agreement, no per-seat cost. Risk to flag: it is a small open-source project maintained by an individual, so we should plan to be able to maintain a fork if it ever goes stale.
For engineering: It hooks Laravel's native auth events and writes to an Eloquent model you own — roughly one migration, one config publish, and a listener. v1.4.1 confirms Laravel 13 compatibility, so it will not block our next framework upgrade. It deliberately stops at persistence: no querying UI, no alerting, no retention/pruning. Budget for those explicitly — table growth and PII considerations in the log rows are the two things that bite in production, and both are our responsibility, not the package's. Recommended posture: adopt, wrap the model behind our own repository/service so a future fork or replacement is a contained change, and add a scheduled prune task on day one.
How can I help you explore Laravel packages today?