下面由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');});
透過這樣的方式我們就可以在後台輕鬆判別使用者是否登陸,沒有登陸就自動跳到登入頁面!
以上是laravel如何透過中介軟體驗證路由登陸訪問的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Laravel的遷移系統在最新版本中提供了哪些新功能和最佳實踐? 1.新增了nullableMorphs()用於多態關係。 2.引入了after()方法來指定列順序。 3.強調處理外鍵約束以避免孤立記錄。 4.建議優化性能,如適當添加索引。 5.提倡遷移的冪等性和使用描述性名稱。

Laravel的最新版本引入了多個新功能:1.LaravelPennant用於管理功能標誌,允許分階段發布新功能;2.LaravelReverb簡化了實時功能的實現,如實時評論;3.LaravelVite加速了前端構建過程;4.新的模型工廠系統增強了測試數據的創建;5.改進了錯誤處理機制,提供了更靈活的錯誤頁面自定義選項。

SoftleteTeinElelelverisling -Memptry -BraceChortsDevetus -teedeeceteveveledeveveledeecetteecetecetecedelave

laravel10.xisthecurrentversion,offeringNewFeaturesLikeEnumSupportineloQuentModelsAndModersAndImpreverModeModeModelBindingWithenums.theSeupDatesEupDatesEnhanceCodereadability andSecurity andSecurity和butquirecareecarefulecarefulecarefulplanninganninganningalmplementAlimplemplemplemplemplemplempletationForupforupsupflade。

laravelmigrationsStreamLinedAtabasemangementbyallowingbolAlyChemachangeStobEdeDinedInphpcode,whobeversion-controllolleDandShared.here'showtousethem:1)createMigrationClassestodeFinePerationFineFineOperationsLikeCreatingingModifyingTables.2)

要查找最新版本的Laravel,可以訪問官方網站laravel.com並點擊右上角的"Docs"按鈕,或使用Composer命令"composershowlaravel/framework|grepversions"。保持更新有助於提升項目安全性和性能,但需考慮對現有項目的影響。

youshouldupdateTotheLateStlaravelVerverSionForPerformanceImprovements,增強的安全性,newfeatures,BetterCommunitySupport,and long-term-Maintenance.1)績效:Laravel9'Selover9'seloquentormoptimizatizationenenhanceApplicationsPeed.2)secuse:laravel8InIntrododeDodecter.2)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。