我在构造函数中有一个带有以下内容的控制器:
$this->middleware('guest', ['except' => [ 'logout', 'auth/facebook', 'auth/facebook/callback', 'auth/facebook/unlink' ] ]);
"注销"规则(默认存在)工作正常,但我添加的其他3个规则将被忽略.路线routes.php
如下:
Route::group(['middleware' => ['web']],function(){ Route::auth(); // Facebook auth Route::get('/auth/facebook', 'Auth\AuthController@redirectToFacebook')->name('facebook_auth'); Route::get('/auth/facebook/callback', 'Auth\AuthController@handleFacebookCallback')->name('facebook_callback'); Route::get('/auth/facebook/unlink', 'Auth\AuthController@handleFacebookUnlink')->name('facebook_unlink'); }
如果我访问auth/facebook
,auth/facebook/callback
或auth/facebook/unlink
登录时我被中间件拒绝并被扔回主页.
我已经尝试通过继续指定'除'规则,/
因此它们routes.php
完全匹配路线,但没有区别.任何想法为什么忽略这些规则,而默认的"注销"规则被尊重?
干杯!
您应该通知方法名称而不是URI.
middleware('guest', ['except' => [ 'redirectToFacebook', 'handleFacebookCallback', 'handleFacebookUnlink' ]]); } }