การรับรองความถูกต้องด้วยลิงก์มหัศจรรย์
เรียนรู้วิธีการใช้ลิงก์มหัศจรรย์สำหรับการลงชื่อเข้าใช้แบบไม่ใช้รหัสผ่าน การลงทะเบียนเฉพาะผู้ได้รับเชิญเท่านั้น และการเชิญสมาชิกในองค์กรด้วยโทเค็นแบบใช้ครั้งเดียว
ลิงก์มหัศจรรย์คืออะไร?
ลิงก์มหัศจรรย์เป็นวิธีการรับรองความถูกต้องแบบไม่ใช้รหัสผ่าน ซึ่งผู้ใช้จะได้รับ URL สำหรับลงชื่อเข้าใช้แบบครั้งเดียวผ่านทางอีเมล (หรือ SMS) การคลิกลิงก์จะช่วยให้เข้าสู่ระบบได้โดยไม่ต้องใช้รหัสผ่าน
นี่คือคุณลักษ ณะด้านความปลอดภัยที่สำคัญของลิงก์มหัศจรรย์:
- โทเค็นใช้ครั้งเดียว: เมื่อคลิกแล้ว โทเค็นจะกลายเป็นโมฆะเพื่อป้องกันการใช้งานซ้ำ
- ลิงก์หมดอายุ: ลิงก์มหัศจรรย์ควรมีระยะเวลาหมดอายุสั้น (เช่น 10 นาที) เพื่อเพิ่มความปลอดภัย
- การจำกัดอัตรา: ป้องกันการใช้งานในทางที่ผิดโดยการจำกัดจำนวนลิงก์มหัศจรรย์ที่สามารถส่งได้ในช่วงเวลาที่กำหนด
- การยึดติดกับอุปกรณ์/เบราว์เซอร์ (ตัวเลือกเพิ่มเติม): จำกัดการใช้ลิงก์เฉพาะอุปกรณ์หรือ IP เดิมเพื่อป้องกันการดักฟัง
องค์ประกอบของลิงก์มหัศจรรย์
ลิงก์มหัศจรรย์ประกอบด้วย:
- เส้นทาง URL: ชี้ไปยังหน้า Landing Page สำหรับแอปของคุณ
- โทเค็นใช้ครั้งเดียว: โทเค็นที่ไม่ซ้ำและใช้ได้เพียงครั้งเดียวสำหรับการรับรองความถูกต้องแบบไม่ใช้รหัสผ่าน
- อีเมลผู้ใช้: ใช้ในการยืนยันความถูกต้องของโทเค็นและตัวตนของผู้ใช้
- พารามิเตอร์เพิ่มเติม: เป็นตัวเลือก ขึ้นอยู่กับความต้องการของแอปของคุณ
ตัวอย่างเช่น ลิงก์มหัศจรรย์อาจมีลักษณะดังนี้:
ในการสร้างลิงก์มหัศจรรย์ คุณจำเป็นต้องสร้างโทเค็นใช้ครั้งเดียว ส่งมันไปยังผู้ใช้อย่างปลอดภัย และตรวจสอบเมื่อผู้ใช้คลิกลิงก์
ขั้นตอนการทำงานของลิงก์มหัศจรรย์
- ผู้ใช้ขอลิงก์มหัศจรรย์: ผู้ใช้ป้อนอีเมลของพวกเขาในแอปของคุณ
- การส ร้างโทเค็นใช้ครั้งเดียว: เซิร์ฟเวอร์สร้างโทเค็นและส่งเป็นลิงก์ผ่านอีเมล
- ผู้ใช้คลิกลิงก์: ผู้ใช้คลิกลิงก์ในอีเมล
- การตรวจสอบโทเค็น: เซิร์ฟเวอร์ตรวจสอบว่าโทเค็นมีความถูกต้องหรือไม่
- ผู้ใช้ได้รับการรับรองความถูกต้อง: หากโทเค็นมีความถูกต้อง ผู้ใช้จะเข้าสู่ระบบ
วิธีการใช้ลิงก์มหัศจรรย์กับ Logto?
ขั้นตอนที่ 1: ขอรับโทเค็นใช้ครั้งเดียว
ใช้ Logto Management API เพื่อสร้างโทเค็นใช้ครั้งเดียว
ตัวอย่างข้อมูลในร่างคำขอ:
ขั้นตอนที่ 2: เขียนลิงก์มหัศจรรย์
หลังจากที่คุณได้รับโทเค็นใช้ครั้งเดียว คุณสามารถเขียนลิงก์มหัศจรรย์และส่งไปยังที่อยู่อีเมลของผู้ใช้ปลายทาง ลิงก์มหัศจรรย์ควรมีโทเค็นและอีเมลผู้ใช้อย่างน้อยเป็นพารามิเตอร์ และควรนำไปสู่หน้า Landing Page ในแอปของคุณ เช่น https://yourapp.com/landing-page
.
นี่คือตัวอย่างง่ายๆ ของลิงก์มหัศจรรย์:
หมายเหตุ:
ชื่อพารามิเตอร์ในลิงก์มหัศจรรย์สามารถปรับแต่งได้เต็มที่ คุณสามารถเพิ่มข้อมูลเพิ่มเติมลงในลิงก์มหัศจรรย์ตามข้อกำหนดของแอปของคุณ และการเข้ารหัสพารามิเตอร์ทั้งหมดใน URL ได้
ขั้นตอนที่ 3: เริ่มต้นกระบวนการรับรองความถูกต้องผ่าน Logto SDK
หลังจากผู้ใช้ปลายทางคลิกลิงก์มหัศจรรย์และไปยังแอปพลิเคชันของคุณ คุณสามารถดึงพารามิเตอร์ token
และ email
จาก URL แล้วเรียกใช้ฟังก์ชัน signIn()
จาก Logto SDK เพื่อเริ่มต้นกระบวนการรับรอง
สำหรับรายละเอียดเพิ่มเติม โปรดตรวจสอบ Logto Docs - ลิงก์มหัศจรรย์ (โทเค็นใช้ครั้งเดียว).
กรณีการใช้ลิงก์มหัศจรรย์
ลิงก์มหัศจรรย์สามารถแทนที่ขั้นตอนการรับรองความถูกต้องครั้งแรก แต่ไม่สามารถข้ามไปที่ การรับรองความถูกต้องหลายปัจจัย (MFA).
ใน Logto เมื่อสร้างลิงก์มหัศจรรย์ด้วยโทเค็นใช้ครั้งเดียว คุณไม่จำเป็นต้องระบุว่าเป็นสำหรับการลงชื่อเข้าใช้หรือสมัครสมาชิก เราจะกำหนดการทำงานอัตโนมัติโดยพิจารณาจากสถานะการลงทะเบียนของอีเมล:
- อีเมลที่ยังไม่ได้ลงทะเบียน: คลิกลิงก์มหัศจรรย์จะพาผู้ใช้ไปยังขั้นตอนการสร้างบัญชี ข้ามการป้อนและยืนยันอีเมล ผู้ใช้จะต้องตั้งรหัสผ่าน เพิ่มรายละเอียดโปรไฟล์ (เช่น ชื่อเต็ม) หรือตั้งค่า MFA ตามการตั้งค่าการลงทะเบียนของคุณ
- อีเมลที่ลงทะเบียนแล้ว: คลิกลิงก์มหัศจรรย์จะข้ามการยืนยันขั้นตอนแรก (เช่น “อีเมล + รหัสผ่าน” หรือ “อีเมล + รหัสยืนยัน”) ผู้ใช้จะเข้าสู่ระบบโดยตรงหรือได้รับการกระตุ้นให้ทำ MFA ขึ้นอยู่กับการตั้งค่าการลงชื่อเข้าใช้ของคุณ
Logto สนับสนุนสถานการณ์ต่อไปนี้ด้วยลิงก์มหัศจรรย์:
- การลงทะเบียนเฉพาะผู้ได้รับเชิญเท่านั้น: สำหรับเครื่องมือภายในหรือผลิตภัณฑ์ AI ที่อยู่ระหว่างการทดสอบ คุณสามารถปิดการลงทะเบียนสาธารณะและเชิญผู้ใช้ที่เฉพาะเจาะจงผ่านลิงก์มหัศจรรย์
- การเชิญสมาชิกในองค์กร: สำหรับผลิตภัณฑ์ SaaS ใช้ลิงก์มหัศจรรย์เพื่อเชิญสมาชิกใหม่เข้าสู่องค์กร ทำให้กระบวนการเป็นสมาชิกง่ายขึ้น
- ลงชื่อเข้าใช้ / สมัครสมาชิก: ส่งลิงก์มหัศจรรย์สำหรับการลงชื่อเข้าใช้หรือสมัครสมัครสมาชิกทางอีเมล
ปัจจุบันไม่รองรับ:
- รีเซ็ตรหัสผ่าน ด้วยลิงก์มหัศจรรย์
- ใช้หมายเลขโทรศัพท์หรือชื่อผู้ใช้เป็น ตัวบ่งชี้
แจ้งให้เราทราบหากคุณต้องการการปรับแต่งเพิ่มเติม
การลงทะเบียนเฉพาะผู้ได้รับเชิญเท่านั้นด้วยลิงก์มหัศจรรย์
สำหรับผลิตภัณฑ์ใหม่ (เช่น เครื่องมือ AI) ที่กำลังทดสอบภายในหรือสำหรับเครื่องมือภายใน คุณอาจต้องการปิดการลงทะเบียนสาธารณะและอนุญาตให้เฉพาะผู้ใช้ที่ระบุเท่านั้นเข้าถึงแอปของคุณ ในการใช้สิ่งนี้กับ Logto:
-
ไปที่ Console > ประสบการณ์การลงชื่อเข้าใช้ > การลงชื่อเข้าใช้และสมัครสมาชิก > ตัวเลือกขั้นสูง และปิด "เปิดใช้งานการลงทะเบียนผู้ใช้" เพื่อปิดการลงทะเบียนสาธารณะ
-
รวบรวมที่อยู่อีเมลของผู้ใช้ที่คุณต้องการเชิญ (เช่น ผ่านเว็บไซต์ของคุณหรือคำแนะนำจากผู้ใช้ที่มีอยู่)
-
สร้างและส่งลิงก์เชิญมหัศจรรย์ตามที่กล่าวไว้ข้างต้น (ขอรับโทเค็นใช้ครั้งเดียว เขียนลิงก์มหัศจรรย์ เริ่มต้นการรับรองความถูกต้องผ่าน Logto SDK)
หมายเหตุ: ตั้งเวลาใช้ได้สำหรับลิงก์เชิญ ขอแนะนำให้ทำให้ลิงก์นี้ใช้ได้อย่างน้อยหนึ่งวัน ใช้ข้อมูลในร่างคำขอต่อไปนี้เพื่อสร้างโทเค็นใช้ครั้งเดียว:
-
ส่งลิงก์มหัศจรรย์ไปยังอีเมลของผู้ใช้ (เช่น
https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]
). ปรับแต่งแม่แบบอี เมล เช่น:เมื่อผู้ใช้คลิก "ยอมรับคำเชิญ" พวกเขาจะเข้าสู่การลงทะเบียนบริการของคุณโดยอัตโนมัติ แม้การลงทะเบียนสาธารณะจะถูกปิดก็ตาม นี่เรียกว่า "การเชิญผู้ใช้เป้าหมาย"
การเชิญสมาชิกในองค์กรด้วยลิงก์มหัศจรรย์
สำหรับผลิตภัณฑ์แบบหลายผู้เช่า (เช่น แอป SaaS อย่าง Slack, GitHub, Vercel) เสนอกระบวนการเชิญสมาชิกที่ไม่มีข้อบกพร่องเพื่อจัดการสมาชิกภาพขององค์กร ใช้ลิงก์มหัศจรรย์เพื่อเพิ่มอัตราการแปลงในคำเชิญสมาชิก
-
ปฏิบัติตาม Logto Docs เพื่อใช้การสร้างองค์กร การควบคุมการเข้าถึงตามบทบาทขององค์กร และการจัดก ารองค์กร: Logto Organizations.
-
ตั้งค่า "เชิญสมาชิก" ในผลิตภัณฑ์ของคุณ ตัวอย่าง:
-
ปฏิบัติตามคำแนะนำนี้เพื่อ เชิญสมาชิกในองค์กร. หมายเหตุ: เมื่อเชิญสมาชิก โปรดเชื่อมโยงข้อมูลที่ส่งายด้วย:
context: jitOrganizationIds
เพื่อระบุองค์กรที่ผู่ใช้จะเข้าร่วม- ตั้งค่า
expiresIn
เวลานานขึ้น (เช่น 2 วันหรือ 1 สัปดาห์) เพื่อใหผู้ใช้มีเวลาที่เพียงพอในการรับคำเชิญ
ตัวอย่างข้อมูลที่ส่ง:
-
ส่งลิงก์เชิญไปยังอีเมลของผู้ใช้ (เช่น
https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]
). ปรับแต่งแม่แบบอีเมลของคุณ เช่น:เมื่อผู้ใช้คลิก "ยอมรับคำเชิญ" พวกเขาจะลงชื่อเข้าใช้หรือสมัครสมาชิกอัตโนมัติและเข้าร่วมองค์กรอัตโนมัติ
รับมือกับความขัดแย้งทางบัญชี
จะเกิดอะไรขึ้นถ้าผู้ใช้ลงชื่อเข้าใช้แล้วและคลิกลิงก์มหัศจรรย์อื่น?
เพื่อรับมือกับความขัดแย้งทางบัญชีอย่างถูกต้อง โปรดปฏิบัติตามดังนี้:
- หลีกเลี่ยงการเพิ่ม
login
ใน "คำแนะนำการลงชื่อเข้าใช้": อย่าตั้งค่าคำแนะนำการลงชื่อเข้าใช้ที่มีlogin
ในคำแนะนำนี้ หากตั้งค่าผิด Logto จะระบุอัตโนมัติลงชื่อเข้าใช้กับบัญชีที่เชื่อมโยงกับโทเค็นลิงก์มหัศจรรย์โดยข้ามการสลับบัญชี - รักษาโทเค็นที่มีอยู่: เมื่อเรียกใช้ฟังก์ชัน
signIn()
ให้ระบุพารามิเตอร์clearTokens: false
เพื่อป้องกันการล้างโทเค็นที่มีอยู่ ถ้าใช้ตัวเลือกนี้ ให้มั่นใจว่าคุณ ล้างโทเค็นด้วยตัวเอง ในหน้าคืนค่าการลงชื่อเข้าใช้
หลังจากการตั้งค่าอย่างถูกต้อง ประสบการณ์ของผู้ใช้จะเป็นดังนี้:
- ลิงก์มหัศจรรย์สำหรับบัญชีปัจจุบัน: ถ้าผู้ใช้ลงชื่อเข้าใช้แล้วและคลิกลิงก์มหัศจรรย์สำหรับบัญชีเดียวกัน Logto จะตรวจสอบโทเค็นใช้ครั้งเดียวและกำหนดผู้ใช้ให้กับองค์กรที่ระบุหากจำเป็น
- ลิงก์มหัศจรรย์สำหรับบัญชีที่ต่างกัน: ถ้าผู้ใช้ลงชื่อเข้าใช้แล้วและคลิกลิงก์มหัศจรรย์สำหรับบัญชีที่ต่างกัน Logto จะกระตุ้นให้ผู้ใช้เลือก:
- ดำเนินการในฐานะบัญชีใหม่: Logto จะเปลี่ยนไปยังบัญชีใหม่หลังการตรวจสอบโทเค็น
- อยู่กับบัญชีปัจจุบัน: Logto จะข้ามการตรวจสอบโทเค็นและพาผู้ใช้กลับไปยังบัญชีปัจจุบัน
รับมือกับหน้าข้อผิดพลาดสำหรับลิงก์มหัศจรรย์ที่ใช้ไม่ได้
เมื่อผู้ใช้คลิกลิงก์มหัศจรรย์ที่ใช้ไม่ได้ พวกเขาจะถูกนำไปยังหน้าข้อผิดพลาดพร้อมคำอธิบายที่ชัดเจนเกี่ยวกับปัญหา ต่อไปนี้คือสถานการณ์และข้อความข้อผิดพลาดที่เป็นไปได้:
ชื่อ | คำอธิบาย |
---|---|
token_not_found | ไม่พบโทเค็นที่ใช้งานอยู่กับอีเมลและโทเค็นที่ระบุ |
email_mismatch | อีเมลไม่ตรงกับโทเค็นที่ระบุ |
token_expired | โทเค็นหมดอายุแล้ว |
token_consumed | โทเค็นถูกใช้งานแล้ว |
token_revoked | โทเค็นถูกยกเลิก |
cannot_reactivate_token | ไม่สามารถส่งโทเค็นกลับไปใช้งานได้ |
แต่ละหน้าข้อผิดพลา ดจะให้ข้อความเฉพาะ เจาะจงช่วยให้ผู้ใช้เข้าใจเหตุผลที่อยู่เบื้องหลังลิงก์มหัศจรรย์ที่ใช้ไม่ได้และแนะนำขั้นตอนต่อไป เช่น
สรุป
Logto มอบความปลอดภัยระดับองค์กรผ่านกระแสการลงชื่อเข้าใช้อย่างยืดหยุ่นแบบไม่ใช้รหัสผ่านด้วยลิงก์มหัศจรรย์ เป็นวิธีที่ง่ายแต่ทรงพลังในการสร้างประสบการณ์ผู้ใช้ที่ราบรื่น—ไม่ว่าคุณจะเชิญให้ผู้ใช้เข้าร่วมองค์กรหรือให้พวกเขาสร้างบัญชีได้อย่างง่ายดาย หรือมอบการรับรองความถูกต้องที่ไม่ยุ่งยาก และเพราะ Logto จัดการกับสถานการณ์ยุ่งยากต่างๆ เช่น ความขัดแย้งของบัญชีและโทเค็นที่หมดอายุ ผู้ใช้ของคุณจะได้สัมผัสประสบการณ์ที่ปลอดภัยและไร้ความหงุดหงิดทุกครั้ง
พร ้อมที่จะปรับปรุง IAM ของคุณให้ทันสมัยด้วยการรับรองความถูกต้องที่ไม่มีข้อผิดพลาด?