مصادقة الرابط السحري
تعلم كيفية تنفيذ الروابط السحرية لتسجيل الدخول بدون كلمة مرور، وتسجيل الدعوات فقط، ودعوات أعضاء المنظمة باستخدام الرموز المميزة لمرة واحدة.
ما هو الرابط السحري؟
الرابط السحري هو طريقة مصادقة بدون كلمة مرور حيث يتلقى المستخدم عنوان URL تسجيل دخول لمرة واحدة عبر البريد الإلكتروني (أو الرسائل القصيرة). النقر على الرابط يسجل دخوله دون الحاجة إلى كلمة مرور.
إليك بعض الميزات الأمنية الرئيسية للروابط السحرية:
- رمز مميز للاستخدام مرة واحدة: بمجرد النقر عليه، يصبح الرمز المميز غير صالح لإعادة الاستخدام.
- انتهاء صلاحية الرابط: يجب أن يكون للرابط السحري وقت انتهاء صلاحية قصير (على سبيل المثال، 10 دقائق) لمزيد من الأمان.
- تحديد الحد: منع إساءة الاستخدام عن طريق تحديد عدد الروابط السحرية التي يمكن إرسالها في إطار زمني محدد.
- ربط الجهاز/المتصفح (اختياري): تقييد استخدام الرابط على الجهاز أو عنوان IP الأصلي لمنع الاعتراض.
تكوين الرابط السحري
يتكون الرابط السحري من:
- مسار URL: يشير إلى صفحة الهبوط لتطبيقك.
- رمز مميز للاستخدام مرة واحدة: رمز مميز فريد للاستهلاك لمرة واحدة مستخدم للمصادقة بدون كلمة مرور.
- البريد الإلكتروني للمستخدم: يستخدم للتحقق من صحة الرمز المميز وهوية المستخدم.
- معلمات إضافية: اختيارية، حسب احتياجات تطبيقك.
على سبيل المثال، قد يبدو الرابط السحري كالتالي:
لإنشاء رابط سحري، تحتاج إلى توليد رمز مميز للاستخدام مرة واحدة، وإرساله بشكل آمن للمستخدم، ثم التحقق منه عند النقر على الرابط.
سير عمل الرابط السحري
- يطلب المستخدم رابطًا سحريًا: يدخل المستخدم بريده الإلكتروني على تطبيقك.
- توليد رمز مميز للاستخدام مرة واحدة: يقوم الخادم بإنشاء رمز مميز ويرسله كرابط عبر البريد الإلكتروني.
- ينقر المستخدم على الرابط: ينقر المستخدم على الرابط في البريد الإلكتروني.
- التحقق من الرمز المميز: يتحقق الخادم مما إذا كان الرمز المميز صالحاً.
- يتم التحقق من المستخدم: إذا كان الرمز المميز صالحاً، يتم تسجيل دخول المستخدم.
كيفية تنفيذ الروابط السحرية باستخدام Logto؟
الخطوة 1: طلب رمز مميز للاستخدام مرة واحدة
استخدم واجهة إدارة API لتكوين رمز مميز للاستخدام مرة واحدة.
مثال على طلب حمولة الجسم:
الخطوة 2: تركيب الرابط السحري
بعد الحصول على الرمز المميز للاستخدام مرة واحدة، يمكنك تركيب رابط سحري وإرساله إلى عنوان بريد المستخدم النهائي. يجب أن يحتوي الرابط السحري على الأقل على الرمز المميز والبريد الإلكتروني للمستخدم كمعلمات، ويجب أن يتجه إلى صفحة هبوط في تطبيقك الخاص. على سبيل المثال، https://yourapp.com/landing-page
.
إليك مثال بسيط عن شكل الرابط السحري:
ملاحظة:
يمكن تخصيص أسماء المعلمات في الرابط السحري بالكامل. يمكنك إضافة معلومات إضافية إلى الرابط السحري بناءً على متطلبات تطبيقك، وكذلك ترميز جميع معلمات URL.
الخطوة 3: تفعيل عملية المصادقة عبر Logto SDK
بعد أن ينقر المستخدم النهائي على الرابط السحري ويتوجه إلى تطبيقك، يمكنك استخراج معلمات token
وemail
من URL، ثم استدعاء وظيفة signIn()
من Logto SDK لتفعيل عملية المصادقة.
لمزيد من التفاصيل، راجع مستندات Logto - الرابط السحري (رمز الاستخدام مرة واحدة).
حالات استخدام الرابط السحري
يمكن للروابط السحرية أن تحل محل خطوة التحقق الأولى، ولكن لا يمكنها تجاوز المصادقة متعددة العوامل (MFA).
في Logto، عند إنشاء رابط سحري باستخدام رمز مميز للاستخدام مرة واحدة، لا تحتاج إلى تحديد ما إذا كان للتسجيل أو لتسجيل الدخول. نقوم تلقائيًا بتحديد التدفق بناءً على حالة تسجيل البريد الإلكتروني:
- بريد إلكتروني غير مسجل: النقر على الرابط السحري يعيد توجيه المستخدمين إلى تدفق إنشاء الحساب، متجاوزًا إدخال البريد الإلكتروني والتحقق منه. المستخدمون يتابعون تعيين كلمة مرور، وإضافة تفاصيل الملف الشخصي (على سبيل المثال، الاسم الكامل)، أو إعداد MFA، بناءً على إعدادات تسجيلك.
- بريد إلكتروني مسجل: النقر على الرابط السحري يتخطى التحقق من الخطوة الأولى (على سبيل المثال، "البريد الإلكتروني + كلمة المرور" أو "البريد الإلكتروني + رمز التحقق"). يتم تسجيل دخول المستخدم إما مباشرةً أو يُطلب منه إكمال MFA، بناءً على إعدادات تسجيل الدخول الخاصة بك.
يدعم Logto السيناريوهات التالية باستخدام الروابط السحرية:
- التسجيل بالدعوة فقط: للأدوات الداخلية أو المنتجات الذكية في مرحلة الاختبار، يمكنك تعطيل التسجيلات العامة ودعوة المستخدمين المحددين عبر رابط سحري.
- دعوة عضو المنظمة: للمنتجات البرمجيات كخدمة، استخدم الروابط السحرية لدعوة أعضاء جدد إ لى المنظمة، مما يسهل عملية الانضمام.
- تسجيل الدخول / التسجيل: إرسال رابط سحري لتسجيل الدخول أو التسجيل عبر البريد الإلكتروني.
حاليًا غير مدعوم:
- إعادة تعيين كلمة المرور بواسطة رابط سحري.
- استخدام رقم الهاتف أو اسم المستخدم كـ معرف.
أخبرنا إذا كنت بحاجة إلى تخصيص إضافي.
التسجيل بالدعوة فقط مع الرابط السحري
للمنتجات الجديدة (مثل الأدوات الذكية) في الاختبار الداخلي أو للأدوات الداخلية، قد ترغب في تعطيل التسجيل العام والسماح فقط للمستخدمين المحددين بالوصول إلى تطبيقك. لتنفيذ ذلك مع Logto:
-
انتقل إلى الكونسول > تجربة تسجيل الدخول > تسجيل الدخول والتسجيل > الخيارات المتقدمة، وقم بتفعيل "تمكين تسجيل المستخدم" لإغلاق التسجيل العام.
-
جمع عناوين البريد الإلكتروني للمستخدمين الذين ترغب في دعوتهم (على سبيل المثال، عبر موقعك الإلكتروني أو توصيات المستخدمين الحاليين).
-
أنشئ وأرسل رابط الدعوة السحري كما هو موضح أعلاه (اطلب الرمز المميز للاستخدام مرة واحدة، قم بتكوين الرابط السحري، وقم بتشغيل المصادقة عبر Logto SDK).
ملاحظة: اضبط وقت صلاحية لرابط الدعوة. يُوصى بجعل الرابط صالحاً ليوم واحد على الأقل. استخدم طلب الجسم التالي لتوليد الرمز المميز للاستخدام مرة واحدة:
-
أرسل الرابط السحري إلى بريد المستخدم الإلكتروني (على سبيل المثال،
https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]
). قم بتخصيص قالب البريد الإلكتروني، مثل:عند النقر على "قبول الدعوة"، سيتم تسجيل المستخدم تلقائيًا لخدمتك حتى مع تعطيل التسجيل العام. يعرف هذا باسم "دعوة المستخدم المستهدف".
دعوة عضو المنظمة مع الرابط السحري
للمنتجات المتعددة المستأجرين (مثل تطبيقات SaaS مثل Slack وGitHub وVercel)، قدم عملية دعوة عضو سلسة لإدارة عضويات المنظمة. استخدم الروابط السحرية لزيادة معدلات التحويل في دعوات الأعضاء.
-
اتبع وثائق Logto لتنفيذ إنشاء المنظمة، التحكم في الوصول بناءً على دور المنظمة، وإدارة المنظمة: منظمات Logto.
-
قم بإعداد سير عمل "دعوة الأعضاء" في منتجك. مثال:
-
اتبع هذا الدليل ل دعوة أعضاء المنظمة. ملاحظة: عند دعوة الأعضاء، تأكد من أن حمولة الطلب تتضمن:
context: jitOrganizationIds
لتحديد المنظمة/المنظمات التي سينضم المستخدم إليها.- تعيين وقت صلاحية أطول (مثل يومين أو أسبوع واحد) للسماح بوقت كافٍ للمستخدمين لقبول الدعوة.
مثال على حمولة الطلب:
-
أرسل رابط الدعوة إلى بريد المستخدم الإلكتروني (على سبيل المثال،
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 يتعامل مع مواقف صعبة مثل تعارضات الحسابات والرموز المميزة منتهية الصلاحية، يحصل المستخدمون لديك على عملية آمنة وخالية من المتاعب في كل مرة.
هل أنت مستعد لتحديث إدارة الهوية والوصول بك باستخدام مصادقة قوية؟