作為一個開源的 PHP Web 框架,Laravel 一直以來都備受 Web 開發者的青睞。其強大的功能與易用性皆為其優勢。對於一個 Web 應用程式來說,登入是非常基礎的功能之一。在 Laravel 中,我們可以很快地實現使用者登錄,並且進行跳轉。
下面,我們就來講一下 Laravel 中使用者登入和跳轉的實作方法。
前置條件
在開始編寫程式碼之前,我們首先需要確保以下條件:
- 擁有Laravel 環境;
- #已經開啟了Laravel 的身份認證功能。
如果你還沒有開啟Laravel 的身份認證功能,可以在終端機裡進入到專案根目錄並輸入以下指令:
php artisan make:auth
對於已開啟身分認證功能的Laravel 項目,我們便可以依照下列步驟進行實作。
使用者登入
在 Laravel 中,我們可以透過表單來取得使用者輸入的使用者名稱和密碼。一般而言,我們會在表單中設定為Post 方法,並且提交到一個叫做LoginController 的控制器中,如下程式碼所示:
<form method="POST" action="{{ route('login') }}"> @csrf <div> <label for="email">邮箱</label> <div> <input id="email" type="email" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus> </div> </div> <div> <label for="password">密码</label> <div> <input id="password" type="password" name="password" required autocomplete="current-password"> </div> </div> <div> <div> <div> <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> <label for="remember"> 记住我 </label> </div> </div> </div> <div> <div> <button type="submit"> 登录 </button> @if (Route::has('password.request')) <a href="{{ route('password.request') }}"> 忘记密码了? </a> @endif </div> </div> </form>
當使用者填寫完表單資訊後,點擊「登入」按鈕,便會提交資料到LoginController 控制器中。
我們在app/Http/Controllers/Auth/LoginController.php 檔案中找到login 方法,將方法的內容修改如下:
use IlluminateHttpRequest; public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { // 认证成功后的操作 } return back()->withErrors( ['email' => '用户名或密码错误'] ); }
以上程式碼中,我們先取得了使用者表單所提交的數據,即郵箱和密碼。緊接著,我們嘗試使用 Auth::attempt() 方法對使用者進行身份認證。如果使用者認證成功,則在 if 語句中進行後續操作,否則傳回錯誤訊息,提示使用者使用者名稱或密碼錯誤,並重新載入登入介面。
跳轉
當使用者成功登入之後,我們需要將使用者跳到指定的頁面。在 Laravel 中,有兩種實作方式,分別如下。
控制器方式
我們可以透過在 LoginController 控制器中增加 authenticated() 方法,來實作重定向到指定頁面。此方法會在使用者認證成功後自動呼叫。修改後的 LoginController 控制器程式碼如下:
use IlluminateHttpRequest; public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended('/home'); } return back()->withErrors( ['email' => '用户名或密码错误'] ); } protected function authenticated(Request $request, $user) { return redirect('/home'); }
以上程式碼中,我們可以看到 authenticated() 方法,該方法將使用者重新導向到 /home 頁面。
路由方式
我們也可以在登入成功後,透過註冊路由的方式來實現重定向。在web.php 檔案中,我們註冊以下路由:
Route::get('/home', function () { return view('home'); })->name('home'); Route::group(['middleware' => 'auth'], function () { Route::get('/', function () { return redirect()->route('home'); }); });
以上程式碼中,我們在auth 中間件中註冊了預設的根路由/,當使用者登入成功後,會自動重定向到/home頁面中。
總結
以上便是在 Laravel 中使用者登入和跳轉的方法。 Laravel 提供的身份認證功能,為我們快速實現使用者登入提供了極大的幫助。同時,透過控制器和路由兩種方式,我們也可以對使用者的跳轉進行細緻控制。
以上是laravel 登入 跳轉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

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

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

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

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

本文討論了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 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

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

Atom編輯器mac版下載
最受歡迎的的開源編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

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