繁体   English   中英

在公共laravel文件夹中定义目录的路由

[英]define routes for directories in public laravel folder

我在public laravel文件夹中有一个名为fileManager目录。 现在,我想通过中间件控制对它的访问,以便未签名或未登录的用户无法直接访问它。

默认情况下,任何用户都可以在浏览器中键入目录名称并导航到该目录。 我希望能够定义一个可以应用和认证中间件的路由:

Route::get('/fileManager', ['middleware' => 'auth', function () {
    //
}]);

这不仅是我在公用文件夹中有许多目录,也许我想控制用户对这些目录的访问。

我怎样才能做到这一点 ?

对于创建中间件,在文件中创建类

应用/ http /中间件

创建后

将数组添加到kernel.php您的类

    protected $routeMiddleware = [
            'auth' => \App\Http\Middleware\Authenticate::class,
            'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
            'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
            'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,

           'newMiddleware' => pahttoclass
        ];

有很多方法可以做到这一点。 您可以选择任何喜欢的人。 但是我总是在每个controller使用__construct()方法。 只需在控制器中写入该块。

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

它将仅保护该controller所有methods免受未经授权的用户的侵害。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM