为公共 Laravel 文件夹中的目录定义路由


define routes for directories in public laravel folder

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

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

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

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

我该怎么做?

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

app/http/middleware

创建后

将数组添加到内核中.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免受未经授权的用户的侵害。