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 on Laravel Daily
[NEW] NativePHP Mobile v4 with SuperNative: Mini-Course
5 lessons
18 min
Marketing for Developers in 2026
7 lessons
52 min
Testing in Laravel 13 For Beginners
26 lessons
1 h 41 min read