You can pass arguments to your middleware for specific routes by appending ':' followed by the value. For example, I'm enforcing different authentication methods based on the route using a single middleware.
Route::get('...')->middleware('auth.license');Route::get('...')->middleware('auth.license:bearer');Route::get('...')->middleware('auth.license:basic');
class VerifyLicense{ public function handle(Request $request, Closure $next, $type = null) { $licenseKey = match ($type) { 'basic' => $request->getPassword(), 'bearer' => $request->bearerToken(), default => $request->get('key') }; // Verify license and return response based on the authentication type }}
Tip given by @Philo01
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses
[NEW] NativePHP v3: Create Mobile Apps with Laravel
8 lessons
41 min
Livewire v3 to v4: Changes You Need to Know
7 lessons
31 min
Filament 4 From Scratch
28 lessons
2 h 25 min