如何使路由只能从中间件列表中的一个访问

问题描述

...

    Route::get('/student_portal',[studentController::class,'index'])
            ->middleware(['auth:junior_student','auth:senior_student']);
    

...

现在的问题是,如果中间件参数中的任何一个都经过身份验证,而不是当两个参数都经过身份验证时,我希望可以访问此路由,我该怎么做?

解决方法

auth 中间件采用多个参数作为要检查的“守卫”:

middleware('auth:junior_student,senior_student')

中间件将遍历守卫,第一个返回用户的将被设置为默认守卫并让用户通过。