laravel-impersonate icon indicating copy to clipboard operation
laravel-impersonate copied to clipboard

When I leave the impersonation, it logs out

Open adantart opened this issue 1 year ago • 3 comments

Laravel Framework 9.19.0

I have tried using the link generated by route('impersonate.leave') and also with my own controller method and using manually: Auth::user()->leaveImpersonation();

But both ways redirects me to the login page, since it loses the authentication of the original user.

I tried (reading some other issues) using Route::middleware(['auth:web',]) instead of auth:sanctum. And also add this

Event::listen(\Lab404\Impersonate\Events\TakeImpersonation::class,
            function(\Lab404\Impersonate\Events\TakeImpersonation $event) {
                session()->put('password_hash_sanctum', $event->impersonated->getAuthPassword());
            });
        Event::listen(\Lab404\Impersonate\Events\LeaveImpersonation::class,
            function(\Lab404\Impersonate\Events\LeaveImpersonation $event) {
                session()->put('password_hash_sanctum', $event->impersonator->getAuthPassword());
            });

But problem persists...

Any ideas ?

adantart avatar Aug 19 '22 20:08 adantart

This might be #162, there is a workaround I'm the comments over there which you could test

Arne1303 avatar Aug 20 '22 21:08 Arne1303

Unfortunately, it still logs out when I leave impersonation

adantart avatar Aug 20 '22 22:08 adantart

I had this problem on this library, then I looked for another one, but unfortunately it had the same problem, but after a while I found a solution, so it might work on this one too.

$impersonate = Auth::user()?->impersonate();
$user = $impersonate->getImpersonator();
$impersonate->leave();

Auth::guard('sanctum')->setUser($user);

henriquecm avatar Dec 08 '22 19:12 henriquecm