Laravel 5使用中间件保护路由

时间:2015-05-29 10:53:28

标签: authentication laravel routes laravel-5

我是Laravel 5的新手,我只想知道如何保护特定路线?我使用默认的Authenticate Middleware来保护我的路线,只有在您登录后才能访问。所以我有这个。

Route::group(['middleware' => 'App\Http\Middleware\Authenticate'], function()    /* Admin only Routes*/
{
     Route::get('/brk/datalist', 'BRKDailyMailsController@datalist');
});

如何仅保护/ auth / register?不影响其他人如登录?

在我的路线组之外我默认使用此功能。

Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);

我只希望登录用户访问默认注册页面。我登录的用户都是管理员。

2 个答案:

答案 0 :(得分:0)

您可以为特定路径设置中间件,如下所示:

Route::any('register', [
    'as' => 'register', 
    'middleware' => 'auth',
    'uses' => 'AuthController@anyRegister'
]);

这种方式只有登录的用户才能使用" /注册页面。

它被命名为"注册"您也可以在模板中使用它,按名称重定向等。

如果它"通过"中间件(用户登录)将执行AuthController中的anyRegister操作。

您可以随意根据需要对其进行修改,这只是如何实现这一目标的一个示例。

答案 1 :(得分:0)

您可以尝试这样

Route::group(['middleware' => 'auth'], function()
{
    Route::get('/brk/datalist', 'BRKDailyMailsController@datalist');
});

或者你可以在每个控制器的第一行使用构造

public function __construct()
{
    $this->middleware('auth');
}