• ลิงก์มหัศจรรย์
  • ไม่มีรหัสผ่าน
  • การรับรองความถูกต้อง
  • การเชิญ

การรับรองความถูกต้องด้วยลิงก์มหัศจรรย์

เรียนรู้วิธีการใช้ลิงก์มหัศจรรย์สำหรับการลงชื่อเข้าใช้แบบไม่ใช้รหัสผ่าน การลงทะเบียนเฉพาะผู้ได้รับเชิญเท่านั้น และการเชิญสมาชิกในองค์กรด้วยโทเค็นแบบใช้ครั้งเดียว

Ran
Ran
Product & Design

หยุดเสียเวลาเป็นสัปดาห์กับการยืนยันตัวตนผู้ใช้
เปิดตัวแอปที่ปลอดภัยเร็วขึ้นด้วย Logto ผสานการยืนยันตัวตนผู้ใช้ภายในไม่กี่นาทีและมุ่งเน้นที่ผลิตภัณฑ์หลักของคุณ
เริ่มต้นใช้งาน
Product screenshot

ลิงก์มหัศจรรย์คืออะไร?

ลิงก์มหัศจรรย์เป็นวิธีการรับรองความถูกต้องแบบไม่ใช้รหัสผ่าน ซึ่งผู้ใช้จะได้รับ URL สำหรับลงชื่อเข้าใช้แบบครั้งเดียวผ่านทางอีเมล (หรือ SMS) การคลิกลิงก์จะช่วยให้เข้าสู่ระบบได้โดยไม่ต้องใช้รหัสผ่าน

นี่คือคุณลักษณะด้านความปลอดภัยที่สำคัญของลิงก์มหัศจรรย์:

  • โทเค็นใช้ครั้งเดียว: เมื่อคลิกแล้ว โทเค็นจะกลายเป็นโมฆะเพื่อป้องกันการใช้งานซ้ำ
  • ลิงก์หมดอายุ: ลิงก์มหัศจรรย์ควรมีระยะเวลาหมดอายุสั้น (เช่น 10 นาที) เพื่อเพิ่มความปลอดภัย
  • การจำกัดอัตรา: ป้องกันการใช้งานในทางที่ผิดโดยการจำกัดจำนวนลิงก์มหัศจรรย์ที่สามารถส่งได้ในช่วงเวลาที่กำหนด
  • การยึดติดกับอุปกรณ์/เบราว์เซอร์ (ตัวเลือกเพิ่มเติม): จำกัดการใช้ลิงก์เฉพาะอุปกรณ์หรือ IP เดิมเพื่อป้องกันการดักฟัง

องค์ประกอบของลิงก์มหัศจรรย์

ลิงก์มหัศจรรย์ประกอบด้วย:

  • เส้นทาง URL: ชี้ไปยังหน้า Landing Page สำหรับแอปของคุณ
  • โทเค็นใช้ครั้งเดียว: โทเค็นที่ไม่ซ้ำและใช้ได้เพียงครั้งเดียวสำหรับการรับรองความถูกต้องแบบไม่ใช้รหัสผ่าน
  • อีเมลผู้ใช้: ใช้ในการยืนยันความถูกต้องของโทเค็นและตัวตนของผู้ใช้
  • พารามิเตอร์เพิ่มเติม: เป็นตัวเลือก ขึ้นอยู่กับความต้องการของแอปของคุณ

ตัวอย่างเช่น ลิงก์มหัศจรรย์อาจมีลักษณะดังนี้:

ในการสร้างลิงก์มหัศจรรย์ คุณจำเป็นต้องสร้างโทเค็นใช้ครั้งเดียว ส่งมันไปยังผู้ใช้อย่างปลอดภัย และตรวจสอบเมื่อผู้ใช้คลิกลิงก์

ขั้นตอนการทำงานของลิงก์มหัศจรรย์

  1. ผู้ใช้ขอลิงก์มหัศจรรย์: ผู้ใช้ป้อนอีเมลของพวกเขาในแอปของคุณ
  2. การสร้างโทเค็นใช้ครั้งเดียว: เซิร์ฟเวอร์สร้างโทเค็นและส่งเป็นลิงก์ผ่านอีเมล
  3. ผู้ใช้คลิกลิงก์: ผู้ใช้คลิกลิงก์ในอีเมล
  4. การตรวจสอบโทเค็น: เซิร์ฟเวอร์ตรวจสอบว่าโทเค็นมีความถูกต้องหรือไม่
  5. ผู้ใช้ได้รับการรับรองความถูกต้อง: หากโทเค็นมีความถูกต้อง ผู้ใช้จะเข้าสู่ระบบ

วิธีการใช้ลิงก์มหัศจรรย์กับ 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 สนับสนุนสถานการณ์ต่อไปนี้ด้วยลิงก์มหัศจรรย์:

  1. การลงทะเบียนเฉพาะผู้ได้รับเชิญเท่านั้น: สำหรับเครื่องมือภายในหรือผลิตภัณฑ์ AI ที่อยู่ระหว่างการทดสอบ คุณสามารถปิดการลงทะเบียนสาธารณะและเชิญผู้ใช้ที่เฉพาะเจาะจงผ่านลิงก์มหัศจรรย์
  2. การเชิญสมาชิกในองค์กร: สำหรับผลิตภัณฑ์ SaaS ใช้ลิงก์มหัศจรรย์เพื่อเชิญสมาชิกใหม่เข้าสู่องค์กร ทำให้กระบวนการเป็นสมาชิกง่ายขึ้น
  3. ลงชื่อเข้าใช้ / สมัครสมาชิก: ส่งลิงก์มหัศจรรย์สำหรับการลงชื่อเข้าใช้หรือสมัครสมัครสมาชิกทางอีเมล

ปัจจุบันไม่รองรับ:

แจ้งให้เราทราบหากคุณต้องการการปรับแต่งเพิ่มเติม

การลงทะเบียนเฉพาะผู้ได้รับเชิญเท่านั้นด้วยลิงก์มหัศจรรย์

สำหรับผลิตภัณฑ์ใหม่ (เช่น เครื่องมือ AI) ที่กำลังทดสอบภายในหรือสำหรับเครื่องมือภายใน คุณอาจต้องการปิดการลงทะเบียนสาธารณะและอนุญาตให้เฉพาะผู้ใช้ที่ระบุเท่านั้นเข้าถึงแอปของคุณ ในการใช้สิ่งนี้กับ Logto:

  1. ไปที่ Console > ประสบการณ์การลงชื่อเข้าใช้ > การลงชื่อเข้าใช้และสมัครสมาชิก > ตัวเลือกขั้นสูง และปิด "เปิดใช้งานการลงทะเบียนผู้ใช้" เพื่อปิดการลงทะเบียนสาธารณะ

    logto_disable_public_registration.png

  2. รวบรวมที่อยู่อีเมลของผู้ใช้ที่คุณต้องการเชิญ (เช่น ผ่านเว็บไซต์ของคุณหรือคำแนะนำจากผู้ใช้ที่มีอยู่)

  3. สร้างและส่งลิงก์เชิญมหัศจรรย์ตามที่กล่าวไว้ข้างต้น (ขอรับโทเค็นใช้ครั้งเดียว เขียนลิงก์มหัศจรรย์ เริ่มต้นการรับรองความถูกต้องผ่าน Logto SDK)

    หมายเหตุ: ตั้งเวลาใช้ได้สำหรับลิงก์เชิญ ขอแนะนำให้ทำให้ลิงก์นี้ใช้ได้อย่างน้อยหนึ่งวัน ใช้ข้อมูลในร่างคำขอต่อไปนี้เพื่อสร้างโทเค็นใช้ครั้งเดียว:

  4. ส่งลิงก์มหัศจรรย์ไปยังอีเมลของผู้ใช้ (เช่น https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). ปรับแต่งแม่แบบอีเมล เช่น:

    email_templates_invitation_only_registration.png

    เมื่อผู้ใช้คลิก "ยอมรับคำเชิญ" พวกเขาจะเข้าสู่การลงทะเบียนบริการของคุณโดยอัตโนมัติ แม้การลงทะเบียนสาธารณะจะถูกปิดก็ตาม นี่เรียกว่า "การเชิญผู้ใช้เป้าหมาย"

การเชิญสมาชิกในองค์กรด้วยลิงก์มหัศจรรย์

สำหรับผลิตภัณฑ์แบบหลายผู้เช่า (เช่น แอป SaaS อย่าง Slack, GitHub, Vercel) เสนอกระบวนการเชิญสมาชิกที่ไม่มีข้อบกพร่องเพื่อจัดการสมาชิกภาพขององค์กร ใช้ลิงก์มหัศจรรย์เพื่อเพิ่มอัตราการแปลงในคำเชิญสมาชิก

  1. ปฏิบัติตาม Logto Docs เพื่อใช้การสร้างองค์กร การควบคุมการเข้าถึงตามบทบาทขององค์กร และการจัดการองค์กร: Logto Organizations.

  2. ตั้งค่า "เชิญสมาชิก" ในผลิตภัณฑ์ของคุณ ตัวอย่าง:

    invite_organization_member_in_app.png

  3. ปฏิบัติตามคำแนะนำนี้เพื่อ เชิญสมาชิกในองค์กร. หมายเหตุ: เมื่อเชิญสมาชิก โปรดเชื่อมโยงข้อมูลที่ส่งายด้วย:

    • context: jitOrganizationIds เพื่อระบุองค์กรที่ผู่ใช้จะเข้าร่วม
    • ตั้งค่า expiresIn เวลานานขึ้น (เช่น 2 วันหรือ 1 สัปดาห์) เพื่อใหผู้ใช้มีเวลาที่เพียงพอในการรับคำเชิญ

    ตัวอย่างข้อมูลที่ส่ง:

  4. ส่งลิงก์เชิญไปยังอีเมลของผู้ใช้ (เช่น https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). ปรับแต่งแม่แบบอีเมลของคุณ เช่น:

    email_templates_join_organization.png

    เมื่อผู้ใช้คลิก "ยอมรับคำเชิญ" พวกเขาจะลงชื่อเข้าใช้หรือสมัครสมาชิกอัตโนมัติและเข้าร่วมองค์กรอัตโนมัติ

รับมือกับความขัดแย้งทางบัญชี

จะเกิดอะไรขึ้นถ้าผู้ใช้ลงชื่อเข้าใช้แล้วและคลิกลิงก์มหัศจรรย์อื่น?

เพื่อรับมือกับความขัดแย้งทางบัญชีอย่างถูกต้อง โปรดปฏิบัติตามดังนี้:

  • หลีกเลี่ยงการเพิ่ม login ใน "คำแนะนำการลงชื่อเข้าใช้": อย่าตั้งค่าคำแนะนำการลงชื่อเข้าใช้ที่มี login ในคำแนะนำนี้ หากตั้งค่าผิด Logto จะระบุอัตโนมัติลงชื่อเข้าใช้กับบัญชีที่เชื่อมโยงกับโทเค็นลิงก์มหัศจรรย์โดยข้ามการสลับบัญชี
  • รักษาโทเค็นที่มีอยู่: เมื่อเรียกใช้ฟังก์ชัน signIn() ให้ระบุพารามิเตอร์ clearTokens: false เพื่อป้องกันการล้างโทเค็นที่มีอยู่ ถ้าใช้ตัวเลือกนี้ ให้มั่นใจว่าคุณ ล้างโทเค็นด้วยตัวเอง ในหน้าคืนค่าการลงชื่อเข้าใช้

หลังจากการตั้งค่าอย่างถูกต้อง ประสบการณ์ของผู้ใช้จะเป็นดังนี้:

  1. ลิงก์มหัศจรรย์สำหรับบัญชีปัจจุบัน: ถ้าผู้ใช้ลงชื่อเข้าใช้แล้วและคลิกลิงก์มหัศจรรย์สำหรับบัญชีเดียวกัน Logto จะตรวจสอบโทเค็นใช้ครั้งเดียวและกำหนดผู้ใช้ให้กับองค์กรที่ระบุหากจำเป็น
  2. ลิงก์มหัศจรรย์สำหรับบัญชีที่ต่างกัน: ถ้าผู้ใช้ลงชื่อเข้าใช้แล้วและคลิกลิงก์มหัศจรรย์สำหรับบัญชีที่ต่างกัน Logto จะกระตุ้นให้ผู้ใช้เลือก:
    • ดำเนินการในฐานะบัญชีใหม่: Logto จะเปลี่ยนไปยังบัญชีใหม่หลังการตรวจสอบโทเค็น
    • อยู่กับบัญชีปัจจุบัน: Logto จะข้ามการตรวจสอบโทเค็นและพาผู้ใช้กลับไปยังบัญชีปัจจุบัน
    magic_link_account_conflicts.png

รับมือกับหน้าข้อผิดพลาดสำหรับลิงก์มหัศจรรย์ที่ใช้ไม่ได้

เมื่อผู้ใช้คลิกลิงก์มหัศจรรย์ที่ใช้ไม่ได้ พวกเขาจะถูกนำไปยังหน้าข้อผิดพลาดพร้อมคำอธิบายที่ชัดเจนเกี่ยวกับปัญหา ต่อไปนี้คือสถานการณ์และข้อความข้อผิดพลาดที่เป็นไปได้:

ชื่อคำอธิบาย
token_not_foundไม่พบโทเค็นที่ใช้งานอยู่กับอีเมลและโทเค็นที่ระบุ
email_mismatchอีเมลไม่ตรงกับโทเค็นที่ระบุ
token_expiredโทเค็นหมดอายุแล้ว
token_consumedโทเค็นถูกใช้งานแล้ว
token_revokedโทเค็นถูกยกเลิก
cannot_reactivate_tokenไม่สามารถส่งโทเค็นกลับไปใช้งานได้

แต่ละหน้าข้อผิดพลาดจะให้ข้อความเฉพาะ เจาะจงช่วยให้ผู้ใช้เข้าใจเหตุผลที่อยู่เบื้องหลังลิงก์มหัศจรรย์ที่ใช้ไม่ได้และแนะนำขั้นตอนต่อไป เช่น

magic_link_error_pages.png

สรุป

Logto มอบความปลอดภัยระดับองค์กรผ่านกระแสการลงชื่อเข้าใช้อย่างยืดหยุ่นแบบไม่ใช้รหัสผ่านด้วยลิงก์มหัศจรรย์ เป็นวิธีที่ง่ายแต่ทรงพลังในการสร้างประสบการณ์ผู้ใช้ที่ราบรื่น—ไม่ว่าคุณจะเชิญให้ผู้ใช้เข้าร่วมองค์กรหรือให้พวกเขาสร้างบัญชีได้อย่างง่ายดาย หรือมอบการรับรองความถูกต้องที่ไม่ยุ่งยาก และเพราะ Logto จัดการกับสถานการณ์ยุ่งยากต่างๆ เช่น ความขัดแย้งของบัญชีและโทเค็นที่หมดอายุ ผู้ใช้ของคุณจะได้สัมผัสประสบการณ์ที่ปลอดภัยและไร้ความหงุดหงิดทุกครั้ง

พร้อมที่จะปรับปรุง IAM ของคุณให้ทันสมัยด้วยการรับรองความถูกต้องที่ไม่มีข้อผิดพลาด?