Laravel Impersonation
Session-based user impersonation for Laravel, with optional recursive (nested) impersonation.
use BradieTilley\Impersonation\ImpersonationManager;
ImpersonationManager::configure(
authorize: fn ($admin, $user) => $admin->isAdmin() && ! $user->isAdmin(),
);
ImpersonationManager::make()->impersonate($user);
ImpersonationManager::make()->isImpersonating(); // true
ImpersonationManager::make()->stopImpersonating();
Documentation
- Introduction
- Installation
- Configuration
- Usage
- Authorization
- HTTP Routes
- Middleware
- Events
- Extensibility
- Compatibility
Requirements
- PHP 8.3+
- Laravel 13+
Quick start
composer require bradietilley/laravel-impersonation
use BradieTilley\Impersonation\Contracts\Impersonateable;
use BradieTilley\Impersonation\ImpersonationManager;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements Impersonateable
{
//
}
// In a service provider boot method:
ImpersonationManager::configure(
authorize: fn ($admin, $user) => $admin->isAdmin() && ! $user->isAdmin(),
);
See Installation and Usage for the full walkthrough.