laravel 登錄 跳轉

作為一種開源的 php web 框架,laravel 一直以來都備受 web 開發者的青睞。其強大的功能與易用性皆為其優勢。對于一個 web 應用來說,登錄是非常基礎的功能之一。在 laravel 中,我們可以很快地實現用戶登錄,并且進行跳轉。

下面,我們就來講一下 Laravel 中用戶登錄和跳轉的實現方法。

前置條件

在開始編寫代碼之前,我們首先需要確保以下條件:

  • 擁有 Laravel 環境;
  • 已經開啟了 Laravel 的身份認證功能。

如果你還沒有開啟 Laravel 的身份認證功能,可以在終端里進入到項目根目錄并輸入以下命令:

php artisan make:auth

對于已經開啟身份認證功能的 Laravel 項目,我們便可以按照以下步驟進行實現。

用戶登錄

在 Laravel 中,我們可以通過表單來獲取用戶輸入的用戶名和密碼。一般而言,我們會在表單中設置為 Post 方法,并且提交到一個叫做 LoginController 的控制器中,如下代碼所示:


@csrf

@if (Route::has(‘password.request’)) 忘記密碼了? @endif

當用戶填寫完表單信息后,點擊“登錄”按鈕,便會提交數據到 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 提供的身份認證功能,為我們快速實現用戶登錄提供了極大的幫助。同時,通過控制器和路由兩種方式,我們也可以對用戶的跳轉進行細致控制。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享