lvlup-dev/laravel-user-last-seen-at
last_seen_at) to the users table and updates it via middleware, requiring minimal database changes. This aligns well with Laravel’s convention-over-configuration philosophy and avoids introducing new tables or complex dependencies.web or api). No service provider or facade dependencies beyond Laravel’s core.timestamp column to users, which is trivial to revert if needed. Migration is auto-registered, reducing setup friction.last_seen_at updates on every request for authenticated users. This could lead to:
Middleware Placement:
Performance Impact:
last_seen_at be nullified on deletion)?Customization:
Observability:
last_seen_at updates?Compatibility:
users table schema to confirm last_seen_at isn’t already present.composer require lvlup-dev/laravel-user-last-seen-at.php artisan migrate to add the column.bootstrap/app.php (Laravel 11+) or app/Http/Kernel.php (older versions).->withMiddleware(function ($middleware) {
$middleware->web(append: \LvlupDev\UserLastSeenAt\Http\Middleware\UserLastSeen::class);
});
last_seen_at updates are not delayed by cache TTLs.users table before deploying the middleware to avoid race conditions.last_seen_at if historical data is needed (requires manual query).last_seen_at column.last_seen_at frequently (e.g., for "recently active" lists).last_seen_at updates.users table.last_seen_at is not indexed.last_seen_at if querying by recency, or consider batching updates (e.g., via queues).last_seen_at updates are not delayed by cache TTLs.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Database write failure | Timestamp not updated; stale data. | Retry logic or queue the update. |
| Middleware misconfiguration | Applied to wrong routes or not at all. | Test in staging; use route-specific groups. |
| Concurrent request race conditions | Minor timestamp inconsistencies. | Use Eloquent’s updateTimestamps(false) if needed. |
| Cached sessions | last_seen_at lags behind real activity. |
Shorten session TTL or use request-based updates. |
| Migration failure | Column not added; middleware fails. | Rollback migration; test locally first. |
last_seen_at update frequency and query performance.How can I help you explore Laravel packages today?