【问题标题】:define routes for directories in public laravel folder为公共 laravel 文件夹中的目录定义路由
【发布时间】:2016-07-03 11:21:58
【问题描述】:

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

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

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

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

我该怎么做?

【问题讨论】:

  • 我认为您应该将这些目录移动到 storage 目录`并根据要求发送响应。 laravel.com/docs/5.2/filesystem。我不认为你可以限制公共文件夹中的访问。

标签: php laravel


【解决方案1】:

为了在文件中创建中间件创建类

app/http/middleware

创建后

将数组添加到你的类的 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
        ];

【讨论】:

  • 我的问题不在于定义中间件
【解决方案2】:

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

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

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

【讨论】:

  • 我的问题不在于定义中间件
猜你喜欢
  • 1970-01-01
  • 2014-07-18
  • 2021-03-18
  • 2019-08-01
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 2020-07-29
  • 2016-02-24
相关资源
最近更新 更多