When I leave the impersonation, it logs out
adantart opened this issue · 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 ?
This might be #162, there is a workaround I'm the comments over there which you could test
Unfortunately, it still logs out when I leave impersonation
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);