Rangka kerja Laravel ialah rangka kerja pembangunan aplikasi web yang sangat baik dan popular berdasarkan bahasa PHP. Rangka kerja Laravel mempunyai sistem log masuk dan pendaftaran pengguna yang sangat lengkap. Sistem pendaftaran dan log masuk ini boleh melaksanakan fungsi pengesahan asas untuk pengguna, dan boleh melakukan satu siri operasi kebenaran ke atas pengguna, seperti: pengurusan hak pengguna, tetapan semula kata laluan, pengesahan e-mel, dan lain-lain. Dalam artikel berikut, kami akan menghuraikan proses log masuk dan pendaftaran rangka kerja Laravel.
Pertama, kita perlu mencipta jadual pengguna untuk menyimpan maklumat asas pengguna. Kita boleh mencipta model ini menggunakan arahan "make:model" yang disediakan oleh Laravel. Masukkan arahan berikut dalam terminal:
php artisan make:model User -m
Arahan ini akan menjana model app
dalam direktori User
dan jadual users
dalam pangkalan data. Dalam model User
, kita perlu menentukan kaedah pengesahan yang digunakan oleh pengguna. Rangka kerja Laravel menyediakan pelbagai kaedah pengesahan pengguna, yang boleh kita tetapkan dalam atribut guard
dalam model:
protected $guard = 'web';
Selepas mencipta model pengguna, kita perlu mencipta kawalan untuk memaparkan halaman pendaftaran pengguna pengawal, kami menggunakan arahan berikut untuk mencipta pengawal:
php artisan make:controller AuthRegisterController --resource
Selepas menjalankan arahan ini, rangka kerja Laravel akan mencipta fail bernama appHttpControllersAuth
dalam direktori RegisterController.php
. Dalam pengawal ini, kita perlu melaksanakan kaedah berikut:
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']), ]); }
Seterusnya, kita perlu menambah laluan pengawal ini dalam routes/web.php
:
Route::get('register', 'AuthRegisterController@showRegistrationForm')->name('register'); Route::post('register', 'AuthRegisterController@register');
Di muka depan, kami menggunakan The borang berikut digunakan untuk mengumpul data pengguna:
<form method="POST" action="{{ route('register') }}"> @csrf <div> <label for="name">用户名</label> <input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus> </div> <div> <label for="email">邮箱</label> <input id="email" type="email" name="email" value="{{ old('email') }}" required> </div> <div> <label for="password">密码</label> <input id="password" type="password" name="password" required> </div> <div> <label for="password-confirm">确认密码</label> <input id="password-confirm" type="password" name="password_confirmation" required> </div> <div> <button type="submit">注册</button> </div> </form>
Kemudian kami berjaya membuat proses pendaftaran pengguna.
Laravel menyediakan kaedah log masuk pengguna yang sangat pantas, yang boleh kami gunakan untuk log masuk pengguna. Tambahkan laluan berikut dalam routes/web.php
:
Route::get('login', 'AuthLoginController@showLoginForm')->name('login'); Route::post('login', 'AuthLoginController@login'); Route::post('logout', 'AuthLoginController@logout')->name('logout');
dan kemudian buat pengawal User
sepadan dengan model LoginController
. Dalam pengawal, kita perlu melaksanakan kaedah berikut:
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('/'); }
Seterusnya, kita perlu mencipta paparan log masuk pengguna. Dalam paparan, kami menggunakan borang berikut untuk menerima data pengguna:
<form method="POST" action="{{ route('login') }}"> @csrf <div> <label for="email">邮箱</label> <input id="email" type="email" name="email" value="{{ old('email') }}" required autofocus> </div> <div> <label for="password">密码</label> <input id="password" type="password" name="password" required> </div> <div> <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> <label for="remember">记住我</label> </div> <div> <button type="submit">登录</button> </div> </form>
Selepas mencipta paparan dan pengawal di atas, kami melaksanakan proses log masuk pengguna dan pendaftaran rangka kerja Laravel. Apa yang perlu diambil perhatian ialah selepas pengguna berjaya log masuk, maklumat pengguna perlu disimpan dalam sesi untuk memudahkan panggilan fungsi seterusnya. Dalam kaedah kedua pengawal, kita boleh menggunakan kaedah attemptLogin
yang disediakan oleh rangka kerja Laravel untuk mengesahkan maklumat log masuk pengguna Jika pengesahan diluluskan, maklumat pengguna akan disimpan dalam sesi dan pengguna akan dialihkan ke sub-url.
Ringkasnya, proses log masuk pengguna dan pendaftaran rangka kerja Laravel adalah sangat mudah dan mudah difahami Ia hanya memerlukan beberapa baris kod ringkas untuk melaksanakan fungsi log masuk dan pendaftaran pengguna melalui langkah di atas. Sudah tentu, jika pengguna memerlukan pengesahan dan pengurusan kebenaran yang lebih maju, mereka juga boleh menggunakan kebolehlanjutan rangka kerja Laravel untuk menambah beberapa kaedah tersuai berdasarkan model dan pengawal di atas.
Atas ialah kandungan terperinci proses pendaftaran log masuk rangka kerja laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!