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,
3、为路由分配中间件 ->middleware(['checkLogin'])
Route::name("admin.")->middleware(['checkLogin'])->group(function () { Route::get('/admin', 'Pass\IndexController@index')->name('index.index'); //后台首页 });
文章评论(0)