5cc9803330
The main branch was using auth:sanctum middleware on routes but config/auth.php had no sanctum guard defined. This caused: Auth guard [sanctum] is not defined. Fix: 1. Add the sanctum guard entry to config/auth.php with driver=sanctum and provider=users 2. Register the sanctum guard driver in AppServiceProvider::boot() as a safety net via Auth::resolved()
52 lines
2.0 KiB
PHP
Executable File
52 lines
2.0 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Providers;
|
|
|
|
use App\Services\Attendance\AttendancePolicyService;
|
|
use App\Services\Attendance\AttendanceRecordSyncService;
|
|
use App\Services\Attendance\SemesterRangeService;
|
|
use App\Services\Attendance\StudentAttendanceWriterService;
|
|
use App\Services\Attendance\TeacherAttendanceSubmissionService;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Routing\Redirector;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
class AppServiceProvider extends ServiceProvider
|
|
{
|
|
public function register(): void
|
|
{
|
|
$this->app->singleton(AttendancePolicyService::class);
|
|
$this->app->singleton(SemesterRangeService::class);
|
|
$this->app->singleton(AttendanceRecordSyncService::class);
|
|
$this->app->singleton(StudentAttendanceWriterService::class);
|
|
$this->app->singleton(TeacherAttendanceSubmissionService::class);
|
|
}
|
|
|
|
public function boot(): void
|
|
{
|
|
// Ensure the sanctum guard driver is always registered
|
|
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));
|
|
});
|
|
}
|
|
}
|