كيفية حل خطأ redirect_uri_mismatch عند تفعيل تسجيل الدخول من Google في Discourse مع إعداد عكس البروكسي

لقد أنشأت منتدى باستخدام Discourse وعينت له نطاقًا خاصًا، forums-test.com، على الخادم أ. ثم، على الخادم ب (مع النطاق test.com)، قمت بإعداد وكيل عكسي باستخدام Nginx. يتم تمرير جميع عمليات الوصول إلى test.com/forums/ إلى forums-test.com على الخادم أ. بالإضافة إلى ذلك، على الخادم ب، قمت بتكوين إعادة كتابة الاستجابة بحيث يتم استبدال جميع الروابط التي تشير إلى forums-test.com بـ test.com/forums/. كل شيء يعمل بشكل صحيح، ولكن عندما حاولت تمكين مصادقة Google للمنتدى، واجهت مشكلة حيث أعادت Google خطأ redirect_uri_mismatch. يحدث هذا الخطأ لأنه، بعد أن تكمل Google التحقق، تحاول استدعاء test.com/forums/auth/google_oauth2/callback لتمرير رمز مؤقت إلى Discourse. ومع ذلك، أثناء تبادل البيانات بين Discourse و Google، يرسل Discourse عنوان URL لرد الاتصال كـ forums-test.com/auth/google_oauth2/callback، مما يتسبب في عدم التطابق. يتم بدء هذا الطلب الصادر من الخادم أ، ولا يمكنني تعديله. كيف يمكنني حل هذه المشكلة؟

في إعدادات Google Cloud الخاصة بك، ماذا لو قمت بتغيير عنوان URL إلى forums-test.com/auth/google_oauth2/callback؟

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

النطاق “forums-test.com” غير قابل للوصول في الشبكة العامة، لذلك في Google Cloud الخاص بي، قمت بتعيينه إلى test.com/auth/google_oauth2/callback

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

هل يمكن لأحد مساعدتي؟