Impersonating user for Laravel application.
You can install this package via composer using this command:
composer require laracomponents/impersonation
Next, you must add the Impersonable trait to the user model:
use LaraComponents\Impersonation\Traits\Impersonable;
class User
{
use Impersonable;
...
/**
* Optional method
* Default return the "impersonate_id"
**/
public function getImpersonatingKey()
{
return 'your session key here';
}
}
Open App/Http/Kernal.php and add middleware to web middleware group:
protected $middlewareGroups = [
'web' => [
...
\LaraComponents\Impersonation\Middleware\CheckForImpersonating::class,
],
...
];
And finally you should add a routes to routes/web.php. Example:
Route::get('users/{id}/impersonate', function ($id) {
$user = \App\User::findOrFail($id);
if(! $user->isImpersonating()) {
$user->impersonate();
}
return redirect('/');
});
Route::get('users/unimpersonate', function () {
$user = \Auth::user();
if($user->isImpersonating()) {
$user->unimpersonate();
}
return redirect('/');
});
You can run the tests with:
vendor/bin/phpunit
The MIT License (MIT). Please see License File for more information.