我在 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
免受未经授权的用户的侵害。