Heim> PHP-Framework> Laravel> Hauptteil

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

藏色散人
Freigeben: 2020-07-06 13:49:20
nach vorne
4004 Leute haben es durchsucht

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

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

中间件是干什么的

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

创建中间件

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

注册中间件

全局中间件
如果你希望中间件在应用处理每个 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,];
Nach dem Login kopieren

中间件的书写

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

路由中使用中间件

//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');});
Nach dem Login kopieren

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

Das obige ist der detaillierte Inhalt vonlaravel如何通过中间件验证路由登陆访问. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!