Laravel 7.6中间件的使用

浏览929

Laravel 7.6中间件的使用,结合路由轻松实现登录。

中间件提供了一种方便的机制过滤进入应用程序的 HTTP 请求。例如,Laravel 包含一个验证用户身份的中间件。 如果用户未能通过认证,中间件会把用户重定向到登录页面。 反之,用户如果通过验证, 中间件将把请求进一步转发到应用程序中。

当然,除了验证身份外,还可以编写其他的中间件来执行各种任务。例如:CORS 中间件可以负责为所有的应用返回的 responses 添加合适的响应头。日志中间件可以记录所有传入应用的请求。

Laravel 自带了一些中间件,包括身份验证、CSRF 保护等。所有的这些中间件都位于 app/Http/Middleware 目录。


本文主要以 laravel 7.6 版本下,使用中间件 Middleware 和路由 routes实现登录。

1、创建登录中间件 app\Http\Middleware\checkLogin.php


<?php

namespace App\Http\Middleware;

use Closure;

class checkLogin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(session()->get('user')){
            return $next($request);
        }else{
            return redirect(route('admin.login.index'))->with("errors",'请先登录');
        }
        return $next($request);
    }
}

?>

2、注册中间件 app\Http\Kernel.php 修改

'checkLogin' => \App\Http\Middleware\checkLogin::class,


image.png


3、为路由分配中间件 ->middleware(['checkLogin'])

Route::name("admin.")->middleware(['checkLogin'])->group(function () {
    Route::get('/admin', 'Pass\IndexController@index')->name('index.index'); //后台首页

});



  • 暂无任何回答