Dalam aplikasi web moden, tetapan semula kata laluan pengguna ialah ciri penting. Proses penetapan semula kata laluan yang direka dengan baik bukan sahaja dapat memastikan keselamatan akaun pengguna, tetapi juga meningkatkan pengalaman pengguna. Laravel ialah rangka kerja pembangunan web PHP yang popular yang turut menyepadukan sistem tetapan semula kata laluan yang mudah. Artikel ini akan memperkenalkan cara menggunakan Laravel untuk melaksanakan fungsi tetapan semula kata laluan.
Persediaan alam sekitar
Sebelum anda memulakan, pastikan anda telah melengkapkan pemasangan berikut:
Jika anda belum memasang Laravel, anda boleh memasangnya di terminal melalui arahan berikut:
composer create-project --prefer-dist laravel/laravel project-name
Proses penetapan semula kata laluan
Proses penetapan semula kata laluan Laravel adalah berdasarkan pemberitahuan e-mel. pautan untuk menetapkan semula kata laluan ke aplikasi; Aplikasi menentukan sama ada pautan telah tamat tempoh dan sah ;
menentukan penyedia perkhidmatan e-mel yang digunakan, seperti , atau
dsb. Di sini kami menggunakan pembekal perkhidmatan e-mel Alibaba Cloud, dan anda perlu mengisi nama pengguna dan kata laluan e-mel anda. .env
digunakan untuk menentukan alamat penghantaran untuk menghantar e-mel.
MAIL_DRIVER=smtp MAIL_HOST=smtp.mxhichina.com MAIL_PORT=25 MAIL_USERNAME=youremail@example.com MAIL_PASSWORD=yourpassword MAIL_FROM_ADDRESS=youremail@example.com MAIL_ENCRYPTION=
, seperti menetapkan nama dan alamat pengirim: MAIL_DRIVER
smtp
mailgun
sendmail
Konfigurasi penghalaansmtp.mxhichina.com
MAIL_FROM_ADDRESS
dan tambahkan laluan berikut: config/mail.php
'from' => [ 'address' => env('MAIL_FROM_ADDRESS', 'youremail@example.com'), 'name' => env('MAIL_FROM_NAME', 'Your Name'), ],
, iaitu dan , untuk mengendalikan penghantaran e-mel tetapan semula kata laluan masing-masing. dan operasi tetapan semula kata laluan.
routes/web.php
Lihat konfigurasi
// Password Reset Routes Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request'); Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email'); Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset'); Route::post('password/reset', 'Auth\ResetPasswordController@reset');
Seterusnya, kita perlu menambah paparan untuk memaparkan borang untuk pengguna mengisi e-mel dan kata laluan mereka. Kami boleh menggunakan kod templat Blade yang serupa dengan coretan kod berikut: Auth
ForgotPasswordController
ResetPasswordController
Dalam halaman ini, kami menggunakan borang untuk menerima alamat e-mel yang diisi oleh pengguna, dan menambah butang hantar Klik butang ini Pautan tetapan semula kata laluan akan dihantar ke alamat e-mel ini.
Kami juga perlu menambah paparan lain untuk membolehkan pengguna memasukkan kata laluan baharu. Coretan kod yang serupa dengan yang berikut boleh digunakan untuk melaksanakan borang sedemikian:
Borang ini memerlukan pengguna mengisi kata laluan baharu dan mengesahkan kata laluan serta memerlukandan
parameter untuk mengesahkan sama ada pautan set semula adalah sah. Parameter ini tersedia dalam<form method="POST" action="{{ route('password.email') }}"> @csrf <div> <input type="email" name="email" value="{{ old('email') }}" required autofocus placeholder="请输入您的邮箱地址"> </div> <div> <button type="submit">发送重置密码链接</button> </div> </form>
Logik pengawal
<form method="POST" action="{{ route('password.update') }}" > @csrf <input type="hidden" name="token" value="{{ $token }}"> <div> <label for="email-input">邮箱</label> <input type="email" name="email" value="{{ $email ?? old('email') }}" required autofocus> </div> <div> <label for="password-input">新密码</label> <input type="password" name="password" required> </div> <div> <label for="password-confirm-input">确认新密码</label> <input type="password" name="password_confirmation" required> </div> <div> <button type="submit">重置密码</button> </div> </form>
Kami menggunakan dua pengawal dalam penghalaan untuk mengendalikan operasi tetapan semula kata laluan, iaitu $token
dan $email
. ResetPasswordController@showResetForm
menyediakan kaedah untuk memaparkan borang untuk pengguna mengisi alamat e-mel mereka. Kaedah lain akan menghantar e-mel yang mengandungi pautan tetapan semula kata laluan ke alamat e-mel yang diberikan oleh pengguna, di mana kaedah
digunakan untuk mengendalikan penjanaan dan penghantaran pautan tetapan semula. Kaedah dalam ForgotPasswordController
ResetPasswordController
mengendalikan logik pengguna mengisi borang tetapan semula kata laluan dan menyerahkannya Kaedah ForgotPasswordController
digunakan untuk mengemas kini kata laluan pengguna ke pangkalan data. showLinkRequestForm()
sendResetLinkEmail()
Password::sendResetLink()
ResetPasswordController
showResetForm()
Sekarang kita telah menyelesaikan pelaksanaan fungsi tetapan semula kata laluan dalam Laravel, mari cuba gunakan fungsi yang dilaksanakan Untuk menetapkan semula kata laluan anda: reset()
Password::reset()
use Illuminate\Support\Facades\Password; class ForgotPasswordController extends Controller { use SendsPasswordResetEmails; } class ResetPasswordController extends Controller { use ResetsPasswords; protected $redirectTo = '/home'; public function showResetForm(Request $request, $token = null) { return view('auth.passwords.reset')->with( ['token' => $token, 'email' => $request->email] ); } }
Masukkan kata laluan baharu anda dan sahkan kata laluan baharu;
Jika semuanya berjalan lancar, kata laluan anda telah berjaya ditetapkan semula!Dalam artikel ini, kami memperkenalkan cara menggunakan Laravel untuk melaksanakan fungsi tetapan semula kata laluan asas. Dalam aplikasi web moden, tetapan semula kata laluan adalah fungsi yang diperlukan Hanya proses tetapan semula kata laluan yang direka bentuk dan dilaksanakan dengan baik boleh memastikan keselamatan akaun pengguna dan pengalaman pengguna. Saya percaya bahawa selepas anda mempelajari teknik yang diterangkan dalam artikel ini dan melaksanakan fungsi tetapan semula kata laluan yang lengkap, keselamatan kata laluan pengguna dan pengalaman pengguna akan dipertingkatkan.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi tetapan semula kata laluan dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!