https
أعد توجيه http
إلى https
في nginx واستخدم إصدار http من عنوان url كعنوان url لمعاودة الاتصال في إعداد تطبيق github oauth
(متعلق بـ # 647)
عملت معي.
تذكر أنه تم تعيين عنوان url الخاص بمعاودة الاتصال على github وليس على Zammad.
هنا:
شكرا @ madd86 !
@ madd86 هذا ما فعلته. الشيء الآخر هو مجرد الحل بحيث يعمل
مرحبا schurig - ups. اضغط على الزر مبكرًا 😁
لقد قمت بتحليل السلوك ويمكنني إعادة إنتاج المشكلة التي تواجهها. للأسف ، هذا خارج نطاق Zammad (قام به Ominauth) لذلك لا يمكننا تقديم حل مباشر. ومع ذلك ، سنقوم بتحليلها بشكل أكبر للعثور على أفضل حل لتشغيلها.
كيف تتكاثر:
الوضع الحالي:
يأتي عنوان redirect_url من هنا:
https://github.com/intridea/omniauth-github/blob/master/lib/omniauth/strategies/github.rb#L5
https://github.com/intridea/omniauth-oauth2/blob/master/lib/omniauth/strategies/oauth2.rb#L47
https://github.com/omniauth/omniauth/blob/8098855f6b52f5f1aecbd700e7068f204adddfdd/lib/omniauth/strategy.rb#L435
https://github.com/omniauth/omniauth/blob/8098855f6b52f5f1aecbd700e7068f204adddfdd/lib/omniauth/strategy.rb#L428
https://github.com/omniauth/omniauth/blob/8098855f6b52f5f1aecbd700e7068f204adddfdd/lib/omniauth/strategy.rb#L503
يبدو أن بعض هذه RACK ENVs لم يتم ضبطها بشكل صحيح. يجب التحقق مما إذا كان بإمكاننا التأثير على ذلك عبر NGINX conf أو إذا كان علينا القيام بذلك بطريقة ما في سياق ريلز.
مرحبًا schurig - أعتقد أنني فهمت ذلك! هل تعمل بتثبيت NGINX؟ إذا كان الأمر كذلك ، يُرجى تحديث التهيئة وإضافة هذين السطرين:
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
كما في لقطة الشاشة:
أعد تشغيل NGINX و Zammad وأخبرني. يجب أن يكون اباتشي هذه الأسطر:
RequestHeader set Host zammad.example.com
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
للتسجيل: لقد قمت بإلقاء ملف Rack.envs عبر مُهيئ للكتابة فوق اكتشاف Omniauth ssl في مُهيئ السكك الحديدية الجديد config/initializers/debug_ssl.rb
:
Rails.application.config.to_prepare do # to_prepare ensures that the monkey patching happens before the first request
OmniAuth::Strategy.class_eval do # reopen the class
protected
def ssl? # redefine the ssl? method
# DEBUG/CUSTOMIZATION
File.write('/tmp/omniauth.log', request.env.inspect)
# DEBUG/CUSTOMIZATION
request.env['HTTPS'] == 'on' ||
request.env['HTTP_X_FORWARDED_SSL'] == 'on' ||
request.env['HTTP_X_FORWARDED_SCHEME'] == 'https' ||
(request.env['HTTP_X_FORWARDED_PROTO'] && request.env['HTTP_X_FORWARDED_PROTO'].split(',')[0] == 'https') ||
request.env['rack.url_scheme'] == 'https'
end
end
end
ولم يتم وضع أي من الفارس المكشوفة.
كانت هذه هي المشكلة! شكرا!! 😍 ❤️
شكرا على ملاحظاتك! الالتزام في طريقه. 🚀 حتى الإصدار التالي.
جرب هذه الإجابة عملت معي
https://stackoverflow.com/a/41466634/1770571
salmagomaa هذا لا يحل المشكلة وكان خلل داخل زمماد.
يرجى محاولة عدم إعادة استخدام المنشورات - لقد تم حل المشكلة بالفعل.
التعليق الأكثر فائدة
مرحبًا schurig - أعتقد أنني فهمت ذلك! هل تعمل بتثبيت NGINX؟ إذا كان الأمر كذلك ، يُرجى تحديث التهيئة وإضافة هذين السطرين:
كما في لقطة الشاشة:
أعد تشغيل NGINX و Zammad وأخبرني. يجب أن يكون اباتشي هذه الأسطر:
للتسجيل: لقد قمت بإلقاء ملف Rack.envs عبر مُهيئ للكتابة فوق اكتشاف Omniauth ssl في مُهيئ السكك الحديدية الجديد
config/initializers/debug_ssl.rb
:ولم يتم وضع أي من الفارس المكشوفة.