使用 Auth 中间件来验证用户的身份时,如果用户未通过身份验证,则 Auth 中间件会把用户重定向到登录页面。如果用户通过了身份验证,则 Auth 中间件会通过此请求并接着往下执行。Laravel 框架默认为我们内置了一些中间件,例如身份验证、CSRF 保护等。所有的中间件文件都被放在项目的 app/Http/Middleware
文件夹中。
<?php namespace App\Http\Controllers; . . . class UsersController extends Controller { public function __construct() { $this->middleware('auth', [ 'except' => ['show', 'create', 'store'] ]); } . . . }
__construct
方法中调用了 middleware
方法,该方法接收两个参数,第一个为中间件的名称,第二个为要进行过滤的动作。我们通过 except
方法来设定 指定动作 不使用 Auth 中间件进行过滤,意为 —— 除了此处指定的动作以外,所有其他动作都必须登录用户才能访问,类似于黑名单的过滤机制。相反的还有 only
白名单方法,将只过滤指定动作。