laravel如何通过中间件验证路由登陆访问

2022-05-15 0 295

下面由Laravel教程栏目给大家介绍laravel通过中间件验证路由登陆访问,希望对需要的朋友有所帮助!

laravel如何通过中间件验证路由登陆访问

中间件是干什么的

中间件提供了一种方便的机制过滤进入应用程序的 HTTP 请求。
例如,Laravel 包含一个验证用户身份的中间件。如果用户未能通过认证,中间件会把用户重定向到登录页面。反之,用户如果通过验证,中间件将把请求进一步转发到应用程序中。
当然,除了验证身份外,还可以编写其他的中间件来执行各种任务。例如:CORS 中间件可以负责为所有的应用返回的 responses 添加合适的响应头。日志中间件可以记录所有传入应用的请求。
Laravel 自带了一些中间件,包括身份验证、CSRF 保护等。所有的这些中间件都位于app/Http/Middleware 目录中。

创建中间件

//使用 make:middleware 命令来创建新的中间件。php artisan make:middleware Auth

注册中间件

全局中间件
如果你希望中间件在应用处理每个 HTTP 请求期间运行。只需要在 app/Http/Kernel.php 中的 $middleware 属性中列出这个中间件。
为路由分配中间件
假设你想为指定的路由分配中间件 ,首先应该在 app/Http/Kernel.php 文件内为该中间件分配一个键。默认情况下,该类中的 $routeMiddleware 属性下包含了 Laravel 内置的中间件。若要加入自定义的中间件,只需把它附加到列表后并为其分配一个自定义键。例如:

// 在 App\\Http\\Kernel 类中...protected $routeMiddleware = [    'auth' => \\App\\Http\\Middleware\\Authenticate::class,    'auth.basic' => \\Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth::class,    'bindings' => \\Illuminate\\Routing\\Middleware\\SubstituteBindings::class,    'cache.headers' => \\Illuminate\\Http\\Middleware\\SetCacheHeaders::class,    'can' => \\Illuminate\\Auth\\Middleware\\Authorize::class,    'guest' => \\App\\Http\\Middleware\\RedirectIfAuthenticated::class,    'signed' => \\Illuminate\\Routing\\Middleware\\ValidateSignature::class,    'throttle' => \\Illuminate\\Routing\\Middleware\\ThrottleRequests::class,    'verified' => \\Illuminate\\Auth\\Middleware\\EnsureEmailIsVerified::class,];

中间件的书写

public function handle($request, Closure $next) { //通过判断session是否有用户名,判断是否登陆       if(!session('user')){            return redirect('/');        }        return $next($request); }

路由中使用中间件

//namespace是命名空间,也就是你的controller文件在哪个文件夹里//middleware对应的就是你想调用的中间件,这里调用的是登录验证的中间件//auth就是你在App\\Http\\Kernel类中注册的名字Route::group(['namespace' => 'Admin', 'middleware' => ['auth']], function () {    //后台首页    Route::get('admin','admincontroller@index')->name('admin');    //清除缓存路由    Route::get('admin/clear','admincontroller@clear')->name('clear');    //栏目资源路由    Route::resource('admin/classify','classifycontroller');    //公告资源路由    Route::resource('admin/notice','classifynoticecontroller');});

通过这样的方式我们就可以在后台轻松判别用户是否登陆,没有登陆就自动跳转到登录页面!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 laravel如何通过中间件验证路由登陆访问 https://www.jike1995.com/36684.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务