在開發 Web 應用程式時,使用者登入認證是一個不可或缺的功能。 Laravel 框架提供了多種方式實現使用者認證,而且還提供了一套預設的身份認證系統(即 LaravelIlluminateAuth),方便開發者在應用程式中實現使用者註冊、登入、登出等功能。
對於登入認證成功後,我們常常希望跳到特定頁面,例如使用者的個人資料頁,或是某個特定功能頁。在 Laravel 框架中,實現登入後跳轉非常簡單。
本文將介紹 Laravel 框架中使用者登入後跳轉的幾種方式。
Laravel 框架預設的登入跳轉
LaravelIlluminateAuth 提供的身份認證系統預設配置了使用者登入後的跳轉。在 config/auth.php 設定檔中,有下列預設設定:
'redirect' => [ 'login' => '/login', 'logout' => '/logout', 'home' => '/home', 'register' => '/register', 'verify' => '/email/verify', 'reset' => '/password/reset', 'confirm' => '/password/confirm', ],
其中,'home' 表示登入後的跳到頁面,預設為 /home 路徑。如果需要修改預設跳轉頁面,只需要將該路徑修改為自己想要的頁面。
手動指定跳躍路徑
如果需要在控制器中手動指定登入後的跳躍頁面,我們可以使用 Laravel 框架提供的 RedirectResponse 實例,透過 redirect() 方法實作。
例如,在使用者控制器中,我們可以重寫IlluminateFoundationAuthAuthenticatesUsers trait 中的authenticated() 方法:
use IlluminateSupportFacadesAuth; class UserController extends Controller { use AuthenticatesUsers; protected function authenticated(Request $request, $user) { return redirect()->route('user.show', $user->id); } }
上述程式碼可以在使用者登入成功後,跳到指定的使用者個人資料頁。
重定向到先前頁面
有時候,我們需要將使用者登入後的跳躍路徑設定為登入之前的頁面,可以使用Laravel 提供的session() 函數和URL:: previous() 方法。
例如,在登入控制器中,我們可以這樣實作:
use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; use IlluminateSupportFacadesURL; class LoginController extends Controller { public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended(URL::previous()); } return back()->withErrors(['email' => '登录失败']); } }
在上述程式碼中,我們使用了redirect()->intended() 方法,該方法會將用戶重定向到登入之前造訪的頁面。如果使用者之前沒有造訪過其他頁面,則會重新導向至預設的登入跳轉路徑。
使用中間件跳到指定頁面
Laravel 框架中間件提供了便利的身份認證和授權功能。我們可以在某個中間件指定登入後的跳轉路徑。
例如,我們可以在 auth 中間件中設定登入後的跳躍路徑:
namespace AppHttpMiddleware; use IlluminateAuthMiddlewareAuthenticate as Middleware; class Authenticate extends Middleware { protected function redirectTo($request) { if (! $request->expectsJson()) { return route('login'); // 设置默认的跳转路径 } } }
在上述程式碼中,我們使用 redirectTo() 方法來處理登入失敗的請求。如果請求時期望返回 json 格式數據,則直接傳回 401 錯誤;否則,將使用者重新導向至登入頁面。
如果需要指定其他的跳躍路徑,只需要修改 return 語句中的路由別名。
總結
以上就是在 Laravel 框架中實現使用者登入後跳轉的幾種方式。具體選擇哪種方式,取決於開發者的實際需求和開發場景。無論是哪種方式,都可以方便快速地幫助我們實現使用者認證功能和登入後的跳躍。
以上是laravel 登陸後跳轉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文指導建立強大的Laravel Restful Apis。 它涵蓋項目設置,資源管理,數據庫交互,序列化,身份驗證,授權,測試和關鍵的安全性最佳實踐。 解決可伸縮性chall

本文詳細介紹了Laravel實施OAuth 2.0身份驗證和授權。 它涵蓋了使用League/oauth2-server或提供商特定解決方案的軟件包,強調數據庫設置,客戶端註冊,授權服務器Configu

本文討論了使用組件在Laravel中創建和自定義可重複使用的UI元素,從而為組織提供最佳實踐並建議增強包裝。

本文討論了在雲本地環境中部署Laravel的最佳實踐,重點是可擴展性,可靠性和安全性。關鍵問題包括容器化,微服務,無狀態設計和優化策略。

本文討論了Laravel中的創建和使用自定義刀片指令以增強模板。它涵蓋了定義指令,在模板中使用它們,並在大型項目中管理它們,強調了改進的代碼可重複性和R等好處

本文討論了Laravel中的創建和使用自定義驗證規則,提供了定義和實施的步驟。它突出了諸如可重複性和特異性之類的好處,並提供了擴展Laravel驗證系統的方法。

在選擇PHP框架方面,Laravel和Symfony是最受歡迎和廣泛使用的選項之一。每個框架都為桌子帶來了自己的理念,特徵和優勢,使它們適合不同的項目和用例

本文探討了Laravel中最佳的文件上傳和雲存儲策略。 它檢查本地存儲與雲提供商(AWS S3,Google Cloud,Azure,Digitalocean),強調安全性(驗證,消毒,HTTPS)和Performance Opti


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

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

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

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),