OK, that all makes sense, here's my structure:
Component: (displays a gray button with the user's name)
<form action="{{ route('impersonate.login', [$person->user_id]) }}" method="post">
@csrf
<button class="bg-gray-400 text-black px-2 rounded" type="submit">Impersonate {{ $person->fullName }}</button>
</form>
Route:
Route::middleware(['auth:sanctum', 'verified'])->group(function() {
/** SITE ADMINISTRATOR */
Route::get('sa/', [App\Http\Controllers\Siteadministration\SiteadministratorController::class, 'index'])->name('siteadministrator.index');
Route::post('impersonation/{user_id}', [App\Http\Controllers\Siteadministration\ImpersonationController::class, 'index'])->name('impersonate.login');
Route::get('impersonation/destroy', [App\Http\Controllers\Siteadministration\ImpersonationController::class, 'destroy']);
...
Controller:
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class ImpersonationController extends Controller
{
public function index($user_id)
{
Auth::loginUsingId($user_id);
return redirect()->intended('dashboard');
}
public function destroy()
{
//TBD
}
}
The error is thrown on the ImpersonationController at the Auth::loginUsineId($user_id) line.
Is there a switch that I need to turn on or something I've forgotten to publish?
Thanks!