laravel 使用中间件 验证,未登录不能通过 输入url访问后台
在做后台系统的时候,有一个问题,不用登陆也可以使用定义好的路由来访问后台,这次学习使用 laravel 中间件和验证来 过略。
第一步,使用命令行artisan来创建中间件,php artisan make:middleware AdminLogin ,生成的文件在App下的Http下的Middleware文件夹中。
生成后,到App下的Http下的 Kernel.php 中,找到路由中间件 $routeMiddleware 中添加上,'admin.login'=>\App\Http\Middleware\AdminLogin::class,
注册后,到路由里面对需要登陆才能访问的页面群组进行中间件限制,Route::group([ 'middleware'=>'admin.login' ] , function(){ 一堆路由 });
对路由加上限制后,回到 AdminLogin 中间件中,做限制逻辑,要做的是当我在浏览器输入后台路径的时候,如果我登陆了,既可以跳转到指定页面,如果没有登陆,跳转到登陆页面,所以我们要验证是否登陆,用到Auth认证,在这个中间件中 use Illiuminate\Support\Facades\Auth;
use后在 handle 方法中进行判断验证
if( !Auth::check() )
{
return redirect()->route(' 你的登陆页面路由 ');
}
return $next($request);
简单解释下:Auth::check() 是用来验证是否登陆,在这里用它来判断,如果没登陆,进行跳转,登陆了接受http请求。