تطوير الألعاب - تسجيل المستخدمين وإدارة قواعد البيانات (مساعدة مطلوبة)

أهلاً يا رفاق، أتمنى أن تكونوا بخير.

هذا مجرد طلب عام للمساعدة في التوجيه - نريد استخدام إدارة التسجيل / المستخدم / قاعدة بيانات Discourse لتسجيل نفس التفاصيل في قاعدة بيانات لعبتنا الخارجية (حتى يتمكن اللاعب من استخدام نفس تفاصيل تسجيل الدخول لتسجيل الدخول إلى اللعبة).

حالياً، نقوم بالمرور على مستودع git للحصول على فكرة عن كيفية عمل الأشياء وما إلى ذلك.

الخطة الشاملة كما ذكرنا، هي عندما يقوم مستخدم بالتسجيل في المنتدى، سيقوم Discourse بعد ذلك بتسجيل تفاصيل المستخدم في قاعدة بيانات لعبتنا (المستضافة على خادم افتراضي خاص آخر). إذا قاموا بتحديث كلمة المرور أو البريد الإلكتروني، فسيتم عكس ذلك في قاعدة بيانات SQL الخاصة بنا أيضًا.

لدينا منتدى Discourse مستضاف ذاتيًا يعمل بالفعل منذ بضع ساعات، لذا ما زلنا نتعلم Discourse في الوقت الحالي.

لذا سؤالي هو، هل هناك أي مكان يجب أن نبدأ بالبحث فيه أولاً في Discourse لبدء العمل على هذا؟

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

الكلمات السحرية هي “DiscourseConnect” و “مزود الهوية” :wink:

4 إعجابات

ممتاز، شكراً لإرسال هذا!

3 إعجابات

يبدو أن هذا يتطلب التحقق من صحة رسائل البريد الإلكتروني عبر طرف ثالث باستخدام SSO / DiscouseConnect.

هذه مشكلة في إعداداتنا الخاصة، حيث نرغب في أن يتعامل Discourse مع التحقق من صحة رسائل البريد الإلكتروني وإدارة الحسابات كالمعتاد، ولكن فقط تمرير معلومات قاعدة البيانات إلى قاعدة بيانات لعبتنا.

لذا، في جوهره، هو عكس ما يفعله SSO.

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

عند استخدام Discourse كموفر للهوية كما اقترح ريتشارد، سيتولى Discourse التحقق من صحة البريد الإلكتروني نيابة عنك.

عندما يمر المستخدم بتدفق تسجيل الدخول الموحد (SSO) على Discourse ثم يعود إلى موقعك، يمكنك استخدام الاستجابة التي يضيفها Discourse كسلسلة استعلام مضمنة في المعلمة sso، والتي تحتوي على البريد الإلكتروني واسم المستخدم والاسم والمجموعات وما إلى ذلك (ولكن ليس كلمة المرور، فهذه ليست فكرة جيدة)، والتي يمكنك استخراجها والتحقق منها بشكل صحيح باستخدام sig المقدم.

إعجابَين (2)

حسنًا.\n\nإذًا، كما ذُكر، فهو ليس موقعًا إلكترونيًا سترسل إليه Discourse المعلومات.\n\nإنه خادم لعبة - أو بعبارة أخرى، مجرد خادم افتراضي خاص (VPS) مع تشغيل MySQL عليه.\n\nكان سير العمل القديم كالتالي:\nتقوم Unity بتعبئة جداول SQL عندما يقوم المستخدمون "بتسجيل حساب".\n\nما أتطلع إلى القيام به هو استخدام Discourse كموفر للتسجيل وإدارة الحسابات.\n\nأي، يقومون بالتسجيل باستخدام Discourse ويستخدمون هذه المعلومات لتسجيل الدخول إلى خادم اللعبة (من خلال عميل Unity).\n\nلذلك، أحتاج إلى طريقة لنقل بيانات مستخدمي Discourse بشكل موثوق إلى قاعدة بيانات MySQL.\n(كلاهما على نفس الجهاز).\n\nلهذا، قمنا بإعداد غلاف بيانات خارجي لـ Postgres → Mysql، ثم مشغلات لتعبئة البيانات بشكل مناسب.\n\nثم عندما يدخل المستخدم بريده الإلكتروني وكلمة المرور (الخاصة بـ Discourse) في اللعبة، سيكونون قادرين على تسجيل الدخول - نظريًا.\n\nالمشكلة الأخرى التي قرأت عنها مؤخرًا كانت تجزئة كلمة المرور التي تستخدمها Discourse (وهو أمر جيد لأسباب عديدة)، ولكنه يعني أن التجزئات فريدة من نوعها لذلك لا يمكن القيام بذلك بهذه الطريقة.\n\n\nلذا مرة أخرى، لا يوجد موقع ويب لتسجيل الدخول الموحد (SSO)، فقط Discourse وخادم لعبة فيديو آخر يعمل على VPS يتصل به العملاء.