laravel框架登錄注冊流程

laravel框架是一種基于php語言開發的優秀而受歡迎的web應用程序開發框架。laravel框架有非常完善的用戶登錄和注冊系統,這個注冊和登錄系統可以實現用戶的基本認證功能,并且可以對用戶進行一些列的授權操作,如:用戶權限管理、重置密碼、郵箱驗證等等。在下面的文章中,我們將詳細闡述laravel框架的登錄和注冊流程。

  1. 用戶注冊流程

首先,我們需要創建用戶表,用于保存用戶的基本信息。我們可以使用Laravel提供的“make:model”命令來創建該模型。在終端中輸入如下命令:

php artisan make:model User -m

這條命令將會在app目錄下生成一個User模型,并且在數據庫生成一個users表。在User模型中,我們需要指定用戶使用的認證方式。Laravel框架提供了多種用戶認證方式,我們可以在模型中的guard屬性中進行設置:

protected $guard = 'web';

創建好用戶模型之后,我們需要再創建一個用于展示用戶注冊頁面的控制器,我們使用以下命令來創建該控制器:

php artisan make:controller AuthRegisterController --resource

運行完這個命令之后,Laravel框架將會在appHttpControllersAuth目錄下創建一個名為RegisterController.php的文件。在該控制器中,我們需要實現以下方法:

use AppUser; use IlluminateFoundationAuthRegistersUsers; public function register(Request $request) {     $this->validator($request->all())->validate();      event(new Registered($user = $this->create($request->all())));      $this->guard()->login($user);      return redirect($this->redirectTo); }  // 驗證用戶輸入的數據 protected function validator(array $data) {     return Validator::make($data, [         'name' => ['required', 'string', 'max:255'],         'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],         'password' => ['required', 'string', 'min:8', 'confirmed'],     ]); }  // 保存注冊用戶信息到數據庫 protected function create(array $data) {     return User::create([         'name' => $data['name'],         'email' => $data['email'],         'password' => Hash::make($data['password']),     ]); }

接下來,我們需要在routes/web.php中添加該控制器的路由:

Route::get('register', 'AuthRegisterController@showRegistrationForm')->name('register'); Route::post('register', 'AuthRegisterController@register');

在前臺頁面上,我們使用以下表單來收集用戶數據:


@csrf

然后我們就成功地創建了用戶注冊流程。

  1. 用戶登錄流程

Laravel提供了非常快捷的用戶登錄方法,我們可以使用該方法來進行用戶登錄。在routes/web.php中添加以下路由:

Route::get('login', 'AuthLoginController@showLoginForm')->name('login'); Route::post('login', 'AuthLoginController@login'); Route::post('logout', 'AuthLoginController@logout')->name('logout');

然后創建一個與User模型對應的LoginController控制器。在控制器中,我們需要實現以下方法:

use IlluminateFoundationAuthAuthenticatesUsers; public function login(Request $request) {     $this->validateLogin($request);      if ($this->attemptLogin($request)) {         return $this->sendLoginResponse($request);     }      return $this->sendFailedLoginResponse($request); }  // 認證用戶名和密碼 protected function attemptLogin(Request $request) {     return $this->guard()->attempt(         $this->credentials($request), $request->filled('remember')     ); }  // 獲取用戶名和密碼 protected function credentials(Request $request) {     return $request->only($this->username(), 'password'); }  public function username() {     return 'email'; }  // 用戶退出登錄方法 public function logout(Request $request) {     $this->guard()->logout();      $request->session()->invalidate();      return redirect('/'); }

接著,我們需要創建一個用戶登錄視圖。在視圖中,我們使用以下表單來接收用戶數據:


@csrf

在創建好以上視圖和控制器之后,我們就實現了Laravel框架的用戶登錄和注冊流程。需要注意的事項是用戶登錄成功之后,需要將用戶信息存入session中,以便于后續功能的調用。在控制器的第二個方法中,我們可以利用Laravel框架提供的attemptLogin方法來驗證用戶的登錄信息,如果驗證通過就將用戶信息存入session,并且將用戶重定向到子網址。

綜上,Laravel框架的用戶登錄和注冊流程非常簡單易懂,通過以上步驟實現用戶登錄和注冊功能只需要簡單的幾行代碼即可。當然,如果用戶需要更為高級的認證和權限管理,也可以利用Laravel框架的擴展性,在以上模型和控制器的基礎上添加一些自定義的方法。

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