1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > laravel如何通过中间件验证路由登陆访问

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

时间:2020-02-15 09:44:34

相关推荐

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

php框架|Laravel

laravel,中间件

php框架-Laravel

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

网狐棋牌源码,vscode使用系统标题栏,Ubuntu屏蔽vac,tomcat运行几个项目,网络爬虫pythonpdf,厦门php网站建设,湖南什么是seo网络推广优化,网站js css 下载软件lzw

vb png源码,ubuntu 开启端口命令,反爬虫技术 汇总,php 凯撒,哈尔滨seo付费lzw

免费crm源码,vscode配置node服务,ubuntu内网ssh,怎样清除tomcat记录,帝国爬虫,php抓取图片到本地,济南网站优化与seo,政府门户网站asp源码,h5页面模板网址lzw

中间件是干什么的

中间件提供了一种方便的机制过滤进入应用程序的 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, indings => \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, hrottle => \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([ amespace => 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);});

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。