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
Laravel Coding with AI Agents: Cursor, Claude Code, Codex
5 lessons
1 h 01 min
Laravel 12 For Beginners: Your First Project
15 lessons
1 h 32 min
Claude Code for Laravel Projects: Crash Course
8 lessons
48 min