Laravel ialah rangka kerja PHP yang biasa digunakan dengan sintaks yang elegan, fungsi yang berkuasa dan dokumentasi yang kaya Ia telah menjadi rangka kerja pilihan untuk banyak pembangun PHP. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Laravel untuk melaksanakan fungsi pendaftaran dan log masuk.
1. Cipta aplikasi Laravel
Sebelum mula melaksanakan fungsi pendaftaran dan log masuk, anda perlu mencipta aplikasi Laravel terlebih dahulu. Anda boleh menggunakan arahan Komposer yang disediakan secara rasmi oleh Laravel untuk mencipta aplikasi baharu, seperti yang ditunjukkan di bawah:
composer create-project --prefer-dist laravel/laravel your-project-name
di mana, your-project-name
ialah nama aplikasi yang ingin anda cipta.
Selepas penciptaan, masukkan direktori aplikasi dan mulakan pelayan setempat:
cd your-project-name php artisan serve
Masukkan http://localhost:8000
dalam penyemak imbas untuk mengakses halaman alu-aluan aplikasi.
2. Cipta sistem pengesahan
Sebelum melaksanakan fungsi pendaftaran dan log masuk, anda perlu mencipta sistem pengesahan asas. Laravel menyediakan make:auth
perintah Artisan untuk menjana pandangan dan pengawal berkaitan pengesahan dengan cepat.
php artisan make:auth
Selepas melaksanakan arahan di atas, Laravel secara automatik akan mencipta paparan dan pengawal berkaitan seperti register
, login
dan logout
dan menambahkannya pada aplikasi. Selain itu, Laravel akan mencipta jadual tetapan semula pengguna dan kata laluan yang berkaitan dalam pangkalan data.
3. Cipta jadual pangkalan data
Secara lalai, Laravel menggunakan pangkalan data MySQL. Dalam contoh ini, jadual data bernama users
perlu dibuat untuk menyimpan data pengguna. Jadual boleh dibuat menggunakan perintah Artisan berikut:
php artisan make:migration create_users_table --create=users
Selepas melaksanakan arahan di atas, Laravel akan mencipta fail migrasi bernama database/migrations
dalam direktori create_users_table
aplikasi. Buka fail dan ubah suai kaedah up
seperti berikut:
public function up() { Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
Fail migrasi di atas mentakrifkan medan users
jadual data, termasuk name
(nama pengguna), email
(alamat e-mel ), password
(kata laluan), dsb.
Selepas mengubah suai fail migrasi, anda perlu melaksanakan perintah Artisan berikut untuk benar-benar mencipta users
jadual data:
php artisan migrate
4 Buat halaman pendaftaran
Seterusnya, anda perlukan untuk membuat halaman pendaftaran yang membolehkan pengguna memasukkan nama pengguna, alamat e-mel dan kata laluan mereka. Buka fail resources/views/auth/register.blade.php
dan anda boleh melihat bahawa Laravel telah mencipta borang pendaftaran asas untuk kami.
Pada ketika ini, kami perlu memadamkan beberapa medan dan menambah medan name
yang diperlukan dan medan password_confirmation
pengesahan kata laluan. Kod yang diubah suai adalah seperti berikut:
<form method="POST" action="{{ route('register') }}"> @csrf <div> <label for="name">{{ __('Name') }}</label> <div> <input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus> </div> </div> <div> <label for="email">{{ __('E-Mail Address') }}</label> <div> <input id="email" type="email" name="email" value="{{ old('email') }}" required> </div> </div> <div> <label for="password">{{ __('Password') }}</label> <div> <input id="password" type="password" name="password" required> </div> </div> <div> <label for="password-confirm">{{ __('Confirm Password') }}</label> <div> <input id="password-confirm" type="password" name="password_confirmation" required> </div> </div> <div> <button type="submit"> {{ __('Register') }} </button> </div> </form>
5. Proses permintaan pendaftaran
Sekarang, borang pendaftaran telah dibuat, tetapi ia tidak akan berkuat kuasa apabila pengguna menyerahkan borang. Jadi kita perlu mengubah suai fail app/Http/Controllers/Auth/RegisterController.php
untuk mengendalikan permintaan pendaftaran.
public function store(Request $request) { $this->validate($request, [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|unique:users|max:255', 'password' => 'required|string|min:8|confirmed', ]); User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), ]); return redirect()->intended('dashboard'); }
Kod di atas mentakrifkan kaedah bernama store()
, yang digunakan untuk mengendalikan permintaan pendaftaran. Pertama, kaedah validate()
mengesahkan data yang diminta. Jika pengesahan lulus, gunakan model User
untuk mencipta pengguna baharu dan menyulitkan kata laluan. Akhir sekali, ubah hala ke halaman papan pemuka aplikasi.
6. Cipta halaman log masuk
Seterusnya, anda perlu mencipta halaman log masuk di mana pengguna boleh memasukkan alamat e-mel dan kata laluan mereka. Buka fail resources/views/auth/login.blade.php
dan anda dapat melihat bahawa Laravel telah mencipta borang log masuk asas untuk kami.
7. Memproses permintaan log masuk
Borang pendaftaran telah dibuat, tetapi ia tidak akan berkuat kuasa apabila pengguna menyerahkan borang. Jadi kita perlu mengubah suai fail app/Http/Controllers/Auth/LoginController.php
untuk mengendalikan permintaan log masuk.
public function store(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { $request->session()->regenerate(); return redirect()->intended('dashboard'); } return back()->withErrors([ 'email' => 'The provided credentials do not match our records.', ]); }
Kod di atas mentakrifkan kaedah bernama store()
, yang digunakan untuk mengendalikan permintaan log masuk. Pertama, kaedah attempt()
cuba untuk mengesahkan menggunakan bukti kelayakan yang disediakan oleh pengguna. Jika pengesahan berjaya, sesi baharu dijana dan pengguna dialihkan ke halaman papan pemuka aplikasi. Jika ini gagal, pengguna dialihkan semula ke halaman log masuk asal menggunakan kaedah back()
dengan mesej ralat.
8. Sediakan perisian tengah pengesahan
Setelah fungsi pendaftaran dan log masuk telah dilaksanakan, laluan tertentu aplikasi perlu dilindungi supaya hanya pengguna yang disahkan boleh mengaksesnya. Dalam Laravel, anda boleh menggunakan perisian tengah untuk mencapai ini. Laravel menyediakan perisian tengah yang dipanggil auth
yang mengesahkan sama ada pengguna log masuk ke aplikasi.
Laravel secara lalai menggunakan perisian tengah auth
pada mana-mana laluan menggunakan nama laluan auth
. Satu atau lebih perisian tengah boleh ditentukan menggunakan kod berikut:
Route::get('/dashboard', function () { // 仅允许已登录用户访问 })->middleware(['auth']);
Kini hanya pengguna yang disahkan boleh mengakses laluan /dashboard
.
Ringkasan
Artikel ini memperkenalkan cara menggunakan rangka kerja Laravel untuk melaksanakan fungsi pendaftaran dan log masuk. Dengan bantuan rangka kerja Laravel, anda boleh membina aplikasi web yang selamat dan boleh dipercayai dengan cepat dan mudah serta mempromosikan proses pembangunan aplikasi web. Sama ada anda seorang pemula atau pembangun berpengalaman, anda boleh cuba menggunakan rangka kerja Laravel untuk membina aplikasi web anda sendiri.
Atas ialah kandungan terperinci laravel melaksanakan pendaftaran dan log masuk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!