OAuth2 + تسجيل الدخول عبر البريد الإلكتروني بدون نموذج تسجيل

أنا أقوم بإنشاء بوابة مجتمع سأستخدم فيها OAuth2 لربط المزوّد مع Discourse. أريد السماح بتسجيل الدخول عبر البريد الإلكتروني فقط إذا كان البريد مدعوًا للمجتمع (أي لا يجب أن يكون هناك زر تسجيل)، ولكن أريد السماح بجميع تسجيلات الدخول عبر OAuth2.

لا أستطيع حل هذه المشكلة باستخدام إعدادات OAuth2 / تسجيل الدخول. هل هذا ممكن؟ في جوهر الأمر، أريد تجاوز إعدادات التسجيل الخاصة بـ OAuth2.

أعتقد أنك تحتاج فقط إلى تفعيل خيار “دعوة فقط”. هل قمت بذلك ولم يفعل ما تحتاجه؟

إذن، فقط قم بتفعيلها؟

ما الذي قمت به وما الذي لا يتوافق مع توقعاتك؟

إعجابَين (2)

سؤال عادل. هذا هو أول شيء جربته. إليك ما يحدث (هذا هو ما بعد تدفق OAuth):

كانت الخطوة التالية إلغاء تحديد خيار “تمكين التسجيلات الجديدة”:

لا أستطيع نشر الصورة (أنا مستخدم جديد هنا)، لكنها تقول: “التسجيلات الجديدة للحسابات غير مسموح بها في الوقت الحالي.”

لست متأكدًا من الخيارات الأخرى المتاحة التي قد تحل المشكلة. جربت مجموعة واسعة من التوليفات (لا يمكنني سرد كل شيء هنا)، ولم أجد حتى الآن نتيجة تعمل.

أعتقد أن نيتي لم تُفهم بشكل صحيح. لدي تدفق تسجيل الدخول عبر OAuth2 يعمل بشكل طبيعي، لكنني أريد إبقاؤه مفعلًا مع تعطيل التسجيلات الجديدة. يبدو أن إعدادات OAuth2 وتسجيل البريد الإلكتروني مرتبطة ببعضهما، لذا لا يمكنني “فقط تفعيل” OAuth2 مع ترك تسجيل البريد الإلكتروني معطلًا.

ما الذي تريد أن يحدث إذا حاول شخص لم يُدعَ تسجيل الدخول؟

أوه! هل تقصد أن هذا ما يراه الشخص إذا حاول الرد على رابط الدعوة؟

تريد قبول الأشخاص المدعوين فقط. وتريد إلزام هؤلاء الأشخاص بتسجيل الدخول عبر Clove. أليس كذلك؟ يبدو أن هذا ما حدث في مثالك.

أعتقد أن تفعيل خيار “دعوة فقط” مع تعطيل جميع أنواع تسجيل الدخول ما عدا Clove سيفعل ما تبحث عنه. سيرى الأشخاص الذين لا يملكون حسابات في Discourse نافذة حوار “دعوة فقط” التي تعرضها. أما الأشخاص الذين تم دعوتهم فيجب أن يتمكنوا من تسجيل الدخول عبر OAuth الخاص بـ Clove.

إعجاب واحد (1)

قد تكون التوضيحات الإضافية مفيدة لتوصيل الهدف:

أقوم بإعداد مجتمع شبه خاص يحتوي على ثلاثة أنواع من المستخدمين: أعضاء الطاقم (تسجيل الدخول عبر البريد الإلكتروني)، ومستخدمو التطبيقات (تسجيل الدخول الموحد عبر OAuth2)، وضيوف خاصون (بريد إلكتروني، وليسوا مستخدمين للتطبيق). أريد اشتراط وجود دعوات للضيوف الخاصين (السماح لهم بتسجيل الدخول عبر البريد الإلكتروني)، ولكنني أريد معاملة مستخدمي OAuth2 كـ “موثوقين” ولا يحتاجون إلى دعوة. والسبب في ذلك هو أن امتلاك الحساب اللازم لإتمام عملية OAuth2 بنجاح يعني أنك موثوق.

يمكنني إعداد تسجيل الدخول القائم على البريد الإلكتروني مع الدعوات بشكل صحيح، لكن ذلك يعطل تسجيل الدخول عبر OAuth2 لأنها تتطلب أيضًا دعوة. لا أريد أن يحتاجوا إلى دعوة أو يروها—لديهم الثقة بحكم امتلاكهم حساب SSO.

هل يساعد هذا في شرح المشكلة بشكل أفضل؟

هذا هو الجزء الذي كنت أفتقده!

أعتقد، لكنني لست متأكدًا، أن external auth skip create confirm قد يكون ما تبحث عنه. يذكر الوصف SSO فقط، لكنني أعتقد أنها تعمل الآن مع OAuth أيضًا. ساعدت شخصًا آخر في إعداد موقع يتخطى نافذة إنشاء المستخدم لتكوين OAuth2 الخاص به، وأعتقد أن هذه كانت الحيلة.

سأجرب ذلك مع الخيارات الأخرى المختلفة. إليك النتائج:

دعوة فقط + تخطي خارجي:

دعوة فقط، تخطي خارجي، تعطيل تسجيل الدخول عبر البريد الإلكتروني:

يبدو أن هذه الخيارات لن تعمل.

أه، نعم. يا للعنة. تخميني التالي هو أنك ستحتاج إلى إنشاء نسخة من إضافة oauth2 وتعديل إعداد الدعوة فقط.

شكرًا لك @pfaffman، يبدو أن هذا هو ما قبلته. لا أعتقد أن ذلك ممكن في حالة Discourse المستضافة، أليس كذلك؟ إذا لم يكن كذلك، فقد أحتاج إلى إيجاد حل آخر لذلك.

إعجاب واحد (1)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.