404labfr / laravel-impersonate

Laravel Impersonate is a plugin that allows you to authenticate as your users.
https://marceau.casals.fr
2k stars 202 forks source link

Impersonation breaks down when calling the route('impersonate', $id) in vue #166

Open luigibriganti opened 2 years ago

luigibriganti commented 2 years ago

Hi, I have a Laravel project that runs on Inertia/Jetstream + Vue and I installed impersonate following the procedure, but maybe I missed something.

I followed the Simple usage guidelines, creating a get route in web.php like this:

Route::get('/impersonate/{id}', function($id){ Auth::user()->impersonate($id); })->name('impersonate');

But when I call it I get this error: Schermata del 2022-08-26 09-41-33

Following the Using the built-in controller guidelines, instead, I get the following error in console:

Schermata del 2022-08-26 09-43-19

this one is get calling route('impersonate', user.id) in my vue template.

Did I miss something or am I doing something wrong? Thanks.

raducostinean commented 1 year ago

I might be wrong, but you need to pass a model instead of ID. Try using route model binding and see if it works: Route::get('/impersonate/{user}', function(User $user){ Auth::user()->impersonate($user); })->name('impersonate');

mgkimsal commented 1 year ago

@luigibriganti your ziggy config might be limiting what routes are sent down. I hit that recently. check config/ziggy.php

Also, did you add Route::impersonate() to your web routes?