diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 742d555a..96f50ffa 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -37,6 +37,7 @@ use App\Services\Invoices\InvoiceTuitionService; use App\Services\Staff\StaffTimeOffLinkService; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Routing\Redirector; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Gate; use Illuminate\Support\ServiceProvider; @@ -88,6 +89,26 @@ class AppServiceProvider extends ServiceProvider Gate::policy(Setting::class, SettingPolicy::class); Gate::policy(ClassProgressReport::class, ClassProgressReportPolicy::class); + // Re-register the sanctum guard driver to ensure it is available even + // when a stale cached config lacks the sanctum auth guard entry. + Auth::resolved(function ($auth): void { + $auth->extend('sanctum', function ($app, $name, array $config) use ($auth) { + return tap( + new \Illuminate\Auth\RequestGuard( + new \Laravel\Sanctum\Guard( + $auth, + config('sanctum.expiration'), + $config['provider'] ?? null, + config('sanctum.last_used_at', true), + ), + request(), + $auth->createUserProvider($config['provider'] ?? null), + ), + fn ($guard) => app()->refresh('request', $guard, 'setRequest'), + ); + }); + }); + $this->app->resolving(FormRequest::class, function (FormRequest $request, $app): void { $request->setContainer($app)->setRedirector($app->make(Redirector::class)); });