kabbouchi/nova-impersonate
kabbouchi/nova-impersonate adds one-click user impersonation to Laravel Nova. Admins can log in as any user directly from Nova, troubleshoot issues, and safely return to their own account. Ideal for support and debugging workflows.
composer require and a policy gate.Adopt when:
Gate restricting the field to a super-admin or support role — and you already (or can quickly) write an audit record on impersonation start/stop.Look elsewhere when:
lab404/laravel-impersonate) or custom middleware with a signed, short-lived takeover token.To executives: This is a small, MIT-licensed admin feature that lets support staff sign in as a customer to see exactly what that customer sees. It attacks a specific, expensive category of support cost — the tickets that bounce between the customer and the team because nobody can reproduce the problem — and it does so without a new tool, a new vendor, or a new line item. The mechanism is commodity; the reason to buy rather than build is speed and the fact that it slots into the admin panel we already operate. It ships behind an access policy and emits an audit event on every use, so the risk is bounded and reviewable.
To engineering: It's a Laravel Nova field — a composer require, a field declaration on the User resource, and a gate. The package handles session swap and restore; our work is the two things it deliberately doesn't do: authorization (restrict to a named support role, not all Nova users) and audit logging (who impersonated whom, when, and why, written somewhere durable and outside the impersonated session). v2.2.0 is a single-purpose compatibility release adding Laravel 12 support — no breaking changes, no new surface area, so it's a safe bump and it keeps us on the current framework upgrade path. Adoption remains light, so assume we own it: keep the integration behind one small adapter class so we can swap in an in-house implementation or a fork if maintenance stops. Do not roll it out to production until the gate and the audit trail are merged — those are the acceptance criteria, not follow-ups.
How can I help you explore Laravel packages today?