Rumah >rangka kerja php >Laravel >Mari kita bincangkan tentang cara menukar kata laluan pengguna dalam Laravel
Laravel ialah rangka kerja PHP popular yang menyediakan banyak fungsi, termasuk menukar kata laluan pengguna. Dalam artikel ini, kami akan memperkenalkan cara menukar kata laluan pengguna dalam Laravel. Berikut ialah langkah khusus:
Langkah 1: Cipta laluan untuk menukar kata laluan
Pertama, kita perlu mencipta laluan Laravel untuk menukar kata laluan pengguna. Anda boleh menambah kod berikut dalam fail web.php:
Route::get('/password', 'UserController@password')->name('password'); Route::post('/password', 'UserController@updatePassword')->name('updatePassword');
Di sini kami mentakrifkan laluan GET dan POST. Laluan GET digunakan untuk memaparkan borang untuk menukar kata laluan, dan laluan POST digunakan untuk menyerahkan data borang dan melaksanakan operasi kemas kini kata laluan. Pada masa yang sama, UserController@password dan UserController@updatePassword ialah dua kaedah pengawal yang perlu kami buat.
Langkah 2: Buat borang untuk menukar kata laluan
Dalam direktori sumber/pandangan, kami mencipta fail paparan password.blade.php, yang mengandungi borang untuk mengemas kini kata laluan. Berikut ialah contoh kod:
<form method="POST" action="{{ route('updatePassword') }}"> {{ csrf_field() }} <div class="form-group"> <label for="current-password">Current Password</label> <input type="password" name="current-password" id="current-password" class="form-control" required> </div> <div class="form-group"> <label for="new-password">New Password</label> <input type="password" name="new-password" id="new-password" class="form-control" required> </div> <div class="form-group"> <label for="confirm-password">Confirm New Password</label> <input type="password" name="confirm-password" id="confirm-password" class="form-control" required> </div> <button type="submit" class="btn btn-primary">Submit</button> </form>
Terdapat tiga kotak input untuk memasukkan kata laluan semasa, kata laluan baharu dan mengesahkan kata laluan baharu. Alamat penyerahan borang ditetapkan kepada nama laluan yang kami tentukan dalam laluan.
Langkah 3: Cipta kaedah pengawal
Sekarang kita perlu mencipta dua kaedah dalam pengawal UserController: kata laluan dan kemas kiniPassword. Berikut ialah kod contoh:
public function password() { return view('password'); } public function updatePassword(Request $request) { $this->validate($request, [ 'current-password' => 'required', 'new-password' => 'required|string|min:6|confirmed' ]); $user = Auth::user(); $currentPassword = $user->password; $passwordMatches = Hash::check($request['current-password'], $currentPassword); if ($passwordMatches) { $user->password = Hash::make($request['new-password']); $user->save(); return redirect()->back()->with('success', 'Password updated successfully!'); } else { return redirect()->back()->withErrors(['current-password' => 'Incorrect current password.']); } }
Dalam kaedah kemas kiniPassword, kami mula-mula mengesahkan bahawa input borang mematuhi peraturan. Kemudian, kami memperoleh data pengguna semasa melalui kaedah Auth::user() dan kemudian mengesahkan sama ada kata laluan semasa sepadan dengan kata laluan dalam pangkalan data melalui kaedah Hash::check(). Jika kata laluan berjaya dipadankan, kami akan mencincang kata laluan baharu menggunakan kaedah Hash::make() dan menyimpannya ke pangkalan data.
Langkah 4: Uji fungsi tukar kata laluan
Sekarang kami telah mencipta laluan, borang dan kaedah pengawal. Kami boleh mengakses halaman pertukaran kata laluan dengan mengakses alamat localhost/kata laluan dan menguji kod yang kami tulis. Jika semuanya berjalan lancar, kami boleh membenarkan pengguna menukar kata laluan mereka!
Kesimpulan
Sangat mudah untuk menukar kata laluan pengguna dalam Laravel. Kita hanya perlu mencipta borang, laluan dan kaedah pengawal untuk mencapai fungsi ini. Saya harap artikel ini akan membantu anda menukar kata laluan pengguna dalam Laravel.
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara menukar kata laluan pengguna dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!