รีเซ็ตรหัสผ่าน
Logto มีฟีเจอร์รีเซ็ตรหัสผ่านที่ครอบคลุม ช่วยให้ผู้ใช้สามารถกู้คืนการเข้าถึงบัญชีของตนได้อย่างปลอดภัยเมื่อพวกเขาลืมรหัสผ่านหรือประสงค์จะเปลี่ยนรหัสผ่าน ฟีเจอร์นี้รองรับหลายวิธีการยืนยันตัวตน เช่น อีเมลและ SMS เพื่อให้ผู้ใช้สามารถกู้คืนการเข้าถึงผ่านช่องทางที่ตนเองสะดวก
ลืมรหัสผ่านเพื่อกู้คืนบัญชี
การตั้งค่า
เพื่อเปิดใช้งานฟังก์ชันลืมรหัสผ่าน:
-
ตั้งค่าตัวเชื่อมต่อ (Connectors): ตั้งค่า Email หรือ SMS ใน Console > Connectors > Email and SMS connectors
-
เก็บข้อมูลติดต่อของผู้ใช้: ตรวจสอบให้แน่ใจว่าผู้ใช้ได้ลงทะเบียนอีเมล / เบอร์โทรศัพท์ไว้ระหว่าง การสมัครสมาชิก หรือผ่าน การตั้งค่าบัญชี
-
เปิดใช้งานวิธีการยืนยันตัวตน:
- ไปที่ Console > Sign-in & account > Sign-up and sign-in
- เปิดใช้งาน Password เป็นวิธีการลงชื่อเข้าใช้
- เพิ่ม Email verification code และ / หรือ Phone verification code สำหรับ Forgot password
-
บันทึกและทดสอบ: บันทึกการเปลี่ยนแปลงและทดสอบผ่าน Live Preview
ขั้นตอนประสบการณ์ผู้ใช้
เมื่อเปิดใช้งานฟีเจอร์รีเซ็ตรหัสผ่านแล้ว จะมีปุ่มลิงก์ "Forgot password" แสดงอยู่ใต้ฟอร์มลงชื่อเข้าใช้ ผู้ใช้สามารถคลิกที่ลิงก์นี้เพื่อเริ่มกระบวนการรีเซ็ตรหัสผ่าน
- เข้าสู่หน้าลงชื่อเข้าใช้: ผู้เข้าใช้ไปยังหน้าลงชื่อเข้าใช้
- คลิกที่ลิงก์ Forgot password: ผู้ใช้คลิกที่ลิงก์ "Forgot password"
- กรอกอีเมล / เบอร์โทรศัพท์: หลังจากคลิก "Forgot password" ผู้ใช้จะถูกนำไปยังหน้ากรอกอีเมลหรือเบอร์โทรศัพท์ที่ลงทะเบียนไว้
- ส่งรหัสยืนยัน: Logto จะส่งรหัสยืนยันไปยังอีเมลหรือเบอร์โทรศัพท์ที่ผู้ใช้ระบุ และนำไปยังหน้ากรอกรหัสยืนยัน
- กรอกรหัสยืนยัน: ผู้ใช้กรอกรหัสยืนยันที่ได้รับในอีเมลหรือโทรศัพท์ Logto จะตรวจสอบรหัสและตัวตนของผู้ใช้ที่เกี่ยวข้องกับอีเมลหรือเบอร์โทรศัพท์นั้น
- ตั้งรหัสผ่านใหม่: ผู้ใช้จะถูกขอให้ตั้งรหัสผ่านใหม่เมื่อรหัสยืนยันผ่านการตรวจสอบสำเร็จ
- รีเซ็ตรหัสผ่านสำเร็จ: หากรหัสผ่านใหม่ตรงตามนโยบายรหัสผ่าน ระบบจะอัปเดตรหัสผ่านสำเร็จ
- เปลี่ยนเส้นทางไปยังหน้าลงชื่อเข้าใช้: ผู้ใช้จะถูกนำกลับไปยังหน้าลงชื่อเข้าใช้เพื่อเข้าสู่ระบบด้วยรหัสผ่านใหม่
อัปเดตรหัสผ่านหลังลงชื่อเข้าใช้
ผู้ใช้ที่ผ่านการยืนยันตัวตนแล้วสามารถเปลี่ยน (หรือตั้ง) รหัสผ่านของตนเองได้ผ่านประสบการณ์การตั้งค่าบัญชีในแอปของคุณ ดู การตั้งค่าบัญชี สำหรับวิธีสร้างฟีเจอร์นี้ด้วย Account API
ตรวจสอบว่าผู้ใช้มีรหัสผ่านหรือไม่
ข้อมูลผู้ใช้จะมีฟิลด์ boolean ชื่อ hasPassword ระบุว่าผู้ใช้มีข้อมูลรับรองรหัสผ่านอยู่หรือไม่
คุณสามารถตรวจสอบ hasPassword ได้โดย:
- Management API: เช่น
GET /api/users/:id(รวมอยู่ในอ็อบเจกต์ผู้ใช้) - Custom token claims: แทรก
hasPasswordลงใน ID / access tokens (เพื่อให้ฝั่ง frontend สามารถแยก UI ได้โดยไม่ต้องเรียก API เพิ่ม)
จากนั้นเรียก endpoint ของ Account API เพื่อกำหนดหรือตั้งรหัสผ่านใหม่ (ดูรายละเอียดคำขอในคู่มือการตั้งค่าบัญชี) สำหรับผู้ใช้ที่ไม่เคยมีรหัสผ่านมาก่อน คุณ ไม่จำเป็น (และไม่ควร) ขอรหัสผ่านเดิม
แม้ว่าวิธีสมัครสมาชิกของคุณจะกำหนดให้ “ตั้งรหัสผ่าน” สำหรับการลงทะเบียนด้วยอีเมล / เบอร์โทรศัพท์ / ชื่อผู้ใช้ แต่ผู้ใช้ที่สร้างผ่าน social sign-in อย่างเดียว จะข้ามขั้นตอนการตั้งรหัสผ่านโดยอัตโนมัติเพื่อลดอุปสรรค ผู้ใช้เหล่านี้จะมี hasPassword = false จนกว่าจะตั้งรหัสผ่านเองในภายหลัง หลีกเลี่ยงการบังคับให้ตั้งรหัสผ่านทันทีหลัง social sign-up เว้นแต่จำเป็นตามนโยบายความปลอดภัยของคุณ — การแจ้งเตือนแบบหน่วงเวลาและเหมาะสมกับบริบทมักให้ผลลัพธ์ที่ดีกว่า
นโยบายรหัสผ่านแบบกำหนดเอง
ปรับแต่งความยาวรหัสผ่าน ข้อกำหนดตัวอักษร และข้อจำกัดของคำ เพื่อให้เหมาะสมกับความต้องการด้านความปลอดภัยของธุรกิจคุณ พร้อมมอบประสบการณ์ผู้ใช้ที่ดี การตั้งค่าเหล่านี้สามารถกำหนดได้ใน Security > Password policy ดูรายละเอียดเพิ่มเติมได้ที่ password policy
คำถามที่พบบ่อย
จะ sign-out ผู้ใช้หลังรีเซ็ตรหัสผ่านสำเร็จได้อย่างไร?
สมัครรับเหตุการณ์ PostResetPassword จาก webhook event เพื่อรับการแจ้งเตือนเมื่อผู้ใช้รีเซ็ตรหัสผ่านสำเร็จ จากนั้นคุณสามารถเรียก sign-out เพื่อยกเลิกเซสชันปัจจุบันและเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าลงชื่อเข้าใช้
จะสร้าง flow รีเซ็ตรหัสผ่านบน UI ของฉันเองได้อย่างไร?
คุณสามารถสร้าง flow รีเซ็ตรหัสผ่านของคุณเองโดยใช้ Management API และ Account API ของ Logto ดูรายละเอียดเพิ่มเติมได้ที่ การตั้งค่าบัญชี
จะส่งลิงก์รีเซ็ตรหัสผ่านไปยังอีเมลของผู้ใช้ได้อย่างไร?
คุณสามารถสร้าง endpoint สำหรับรีเซ็ตรหัสผ่านแบบ self-hosted และใช้ Logto SDK เพื่อเริ่มคำขอลงชื่อเข้าใช้โดยตั้งค่า first_screen เป็น reset-password ซึ่งจะเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าตั้งรหัสผ่านใหม่โดยอัตโนมัติ