当前位置:  开发笔记 > 编程语言 > 正文

Laravel中间件"除了"规则不起作用

如何解决《Laravel中间件"除了"规则不起作用》经验,为你挑选了1个好方法。

我在构造函数中有一个带有以下内容的控制器:

$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/callbackauth/facebook/unlink登录时我被中间件拒绝并被扔回主页.

我已经尝试通过继续指定'除'规则,/因此它们routes.php完全匹配路线,但没有区别.任何想法为什么忽略这些规则,而默认的"注销"规则被尊重?

干杯!



1> Lucas..:

您应该通知方法名称而不是URI.

middleware('guest', ['except' => [
            'redirectToFacebook', 'handleFacebookCallback', 'handleFacebookUnlink'
        ]]);
    }
}

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有