在Laravel有两种类型的中间件:全局中间件、路由中间件
$middleware
属性用于注册全局中间件,$routeMiddleware
属性用于注册路由指定中间件。
1、创建一个中间件
php artisan make:middleware CheckLogin
在app\Http\Middleware
文件夹中会自动生成CheckLogin.php
文件
namespace App\Http\Middleware;
use Closure;
use Auth;
class CheckLogin
{
public function handle($request, Closure $next)
{
// 如果用户未登录则跳转到登陆页面
if (!Auth::guard('admin')->check()) {
return redirect(route('admin.login.login'))->withErrors(['error' => '非法登陆']);
}
return $next($request);
}
}
2、在app/Http/Kernel.php
中注册路由中间件
protected $routeMiddleware=[
'admin_login' => \App\Http\Middleware\CheckLogin::class,
]
3、在路由配置
routes/web.php
中,对后台模块使用中间件(登录相关页面除外)
Route::group(['prefix'=>'admin','namespace'=>'Admin'], function () {
Route::get('login', 'LoginController@login');
// 中间件
Route::group(['middleware' => 'checklogin'], function () {
// 后台首页
Route::get('index', 'IndexController@index')->name('admin.index.index');
});
});
网友评论