Dev to webs {Coding…}

ร บทเรียนฟรีด้านการพัฒนาซอฟต์แวร์ ที่ครอบคลุมเนื้อหาหลากหลาย ตั้งแต่การเขียนโค้ดพื้นฐานไปจนถึงเทคนิคขั้นสูง

บทที่ 3: การตั้งค่า Password Reset

🔹 เกริ่นนำ

ระบบ “ลืมรหัสผ่าน” เป็นฟีเจอร์สำคัญในเว็บแอปพลิเคชัน Laravel มีระบบ Password Reset ให้พร้อมใช้งานทันทีผ่าน Starter Kit เช่น Breeze ซึ่งรวมทั้งหน้าแบบฟอร์มสำหรับใส่อีเมล ลิงก์ reset ผ่านอีเมล และฟอร์มสำหรับตั้งรหัสผ่านใหม่

บทนี้จะแนะนำการตั้งค่าและใช้งานระบบ password reset อย่างรวดเร็ว พร้อมจุดที่สามารถปรับแต่งได้ เช่น การเปลี่ยนรูปแบบอีเมล หรือปรับ validation

🔸 Route ที่เกี่ยวข้อง (Laravel Breeze)

Route::get('/forgot-password', [PasswordResetLinkController::class, 'create'])->name('password.request');
Route::post('/forgot-password', [PasswordResetLinkController::class, 'store'])->name('password.email');

Route::get('/reset-password/{token}', [NewPasswordController::class, 'create'])->name('password.reset');
Route::post('/reset-password', [NewPasswordController::class, 'store'])->name('password.update');

🔸 ขั้นตอนการใช้งาน

  1. ผู้ใช้เข้า /forgot-password และใส่อีเมล
  2. Laravel จะส่งลิงก์ที่มี token ไปยังอีเมลนั้น
  3. ผู้ใช้คลิกลิงก์แล้วกรอกรหัสผ่านใหม่ที่ /reset-password/{token}

🔸 การตั้งค่า Mail ใน .env

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=null
[email protected]
MAIL_FROM_NAME="My App"

💡 ในการใช้งานจริงควรเชื่อมต่อกับ SMTP จริง เช่น Gmail, SendGrid หรือ Mailgun