We're using the latest version of Laravel
with Laravel Jetstream
and want to implement a functionality to allow our admins to sign in on behalf of a regular user. This allows us to provide a better support if some users encounter problems with their accounts.
This function seems perfect to achieve the intended result:
Auth::loginUsingId(1);
Unfortunately I recieve the the following error message
Method Illuminate\Auth\RequestGuard::loginUsingId does not exist
After some time and thanks to the help of Laravel Debugbar I figured out that the problem is caused by Laravel Sanctum
. It does not include the above function and is set as middleware
to protect the routes in the app\routes\web.php
file.
It seems to work after changing the middleware
from
Route::middleware(['auth:sanctum', 'verified'])
to
Route::middleware(['auth', 'verified'])
So long story short:
Is there another solution to do this? Or better: is this even a valid solution? Can I just remove Sanctum
from the web routes or is this requiered for some reason? We want to still use Sanctum
to authenticate our mobile applications our token based API.