تسجيل الدخول عبر OAuth
يدعم HandyCafe تسجيل الدخول الاجتماعي/OAuth للعملاء باستخدام منحة ترخيص الجهاز (RFC 8628). صُمم هذا التدفق لبيئات الأكشاك والأماكن العامة حيث لا يمكن للعملاء إدخال بيانات الاعتماد بأمان على أجهزة مشتركة.
مزوّدو الخدمة المدعومون
| المزوّد | نقطة النهاية |
|---|---|
| oauth2.googleapis.com | |
| graph.facebook.com/v21.0 | |
| Apple | appleid.apple.com |
| X (Twitter) | api.x.com/2/oauth2 |
| Discord | discord.com/api/oauth2 |
يمكن تفعيل أو تعطيل كل مزوّد بشكل مستقل في الإعدادات > OAuth.
تدفق المصادقة
يمرّ تدفق ترخيص الجهاز بالخطوات التالية:
- يختار العميل مزوّدًا -- على شاشة خمول العميل ينقر العميل على زر المزوّد (مثل Google أو Discord).
- يرسل العميل الطلب إلى الخادم -- يُبلغ العميل خادم HandyCafe بأنه تم بدء تسجيل دخول OAuth.
- يطلب الخادم رمز جهاز -- يتصل الخادم بنقطة نهاية ترخيص الجهاز للمزوّد المحدد ويتلقى رمز جهاز ورمز مستخدم وعنوان URI للتحقق.
- يعرض العميل الرمز -- يعرض العميل
user_codeوverification_uriللعميل ويُقدَّم عادةً كرمز QR لسهولة المسح. - يُصادق العميل على هاتفه -- يمسح العميل رمز QR بجهازه الشخصي (هاتف أو جهاز لوحي) ويُكمل المصادقة على موقع المزوّد.
- يستعلم الخادم عن الرمز -- يستعلم الخادم دوريًا لدى المزوّد عن الرمز. تشمل حالات الاستعلام:
- قيد الانتظار -- لم يُكمل العميل المصادقة بعد.
- إبطاء -- الاستعلام متكرر جدًا؛ يتراجع الخادم.
- نجاح -- اكتملت المصادقة وتم استلام الرمز.
- منتهي الصلاحية -- انتهت صلاحية رمز الجهاز قبل المصادقة.
- خطأ -- حدث خطأ غير متوقع.
- يسترجع الخادم معلومات المستخدم -- عند النجاح يستخدم الخادم الرمز لجلب ملف العميل من المزوّد بما في ذلك
provider_uidوemailوnameوavatar_url. - يوافق المسؤول أو يرفض -- يظهر طلب تسجيل الدخول في صفحة الطلبات. يراجع المسؤول أو الكاشير الطلب ويوافق عليه أو يرفضه.
- يُنشأ عضو أو يُربط -- إذا تمت الموافقة يُنشأ حساب عضو جديد أو تُربط هوية OAuth بعضو موجود.
- تبدأ جلسة العميل -- يتلقى العميل التأكيد وتبدأ جلسة العميل.
اعتبارات الأمان
- لا تمرّ بيانات الاعتماد عبر الجهاز المشترك. يُصادق العملاء على أجهزتهم الشخصية فقط. لا تُدخل كلمات مرور أو رموز على جهاز العميل.
- بوابة موافقة المسؤول. يجب الموافقة على كل طلب تسجيل دخول OAuth من قبل مسؤول أو كاشير قبل بدء الجلسة مما يمنع الوصول غير المصرّح به.
- متطلب الرصيد قابل للتكوين. يمكن تفعيل أو تعطيل خيار "السماح بتسجيل الدخول بدون رصيد" للتحكم فيما إذا كان العملاء يحتاجون رصيدًا إيجابيًا لتسجيل الدخول عبر OAuth.
الإعداد
تُعدّ مزوّدو OAuth في الإعدادات > OAuth. يتطلب كل مزوّد بيانات اعتماد العميل الخاصة به (معرّف العميل وسر العميل) المحصول عليها من وحدة تحكم مطوّر المزوّد. فعّل فقط المزوّدين الذين تريد تقديمهم لعملائك.