Laravel中间件

2018-10-13  本文已影响20人  老衲灬

在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');
    });

});
上一篇 下一篇

猜你喜欢

热点阅读