https
alihkan http
ke https
di nginx dan gunakan versi http dari url sebagai url panggilan balik di pengaturan aplikasi oauth github
(terkait dengan # 647)
Itu berhasil untuk saya.
Ingatlah bahwa url panggilan balik sebenarnya disetel di github dan bukan di Zammad.
Sini:
Terima kasih @ madd86 !
@ madd86 itulah yang saya lakukan. Hal lain hanyalah solusi agar berhasil
Hai @schurig - up. Tekan tombol ke awal 😁
Saya menganalisis perilakunya dan dapat mereproduksi masalah yang Anda alami. Sayangnya itu di luar ruang lingkup Zammad (dilakukan oleh Ominauth) jadi kami tidak dapat memberikan perbaikan langsung. Namun demikian kami akan menganalisisnya lebih lanjut untuk menemukan solusi terbaik untuk membuatnya berfungsi.
Bagaimana memperbanyak:
Kondisi saat ini:
Redirect_url berasal dari sini:
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
Sepertinya beberapa dari RACK ENV tersebut tidak diatur dengan benar. Harus dicentang jika kita dapat mempengaruhi ini melalui konfigurasi NGINX atau jika kita harus melakukannya dalam konteks Rails.
Hai @schurig - Sepertinya saya mengerti! Apakah Anda menjalankan dengan instalasi NGINX? Jika demikian, harap perbarui konfigurasi Anda dan tambahkan dua baris berikut:
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
Seperti di tangkapan layar:
Mulai ulang NGINX dan Zammad Anda dan beri tahu saya. Apache harus menjadi baris ini:
RequestHeader set Host zammad.example.com
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
Sebagai catatan: Saya membuang rack.envs melalui penginisialisasi yang menimpa deteksi ssl Omniauth di penginisialisasi rel baru 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
Dan tidak ada var yang diperiksa dipasang.
Ini masalahnya! Terima kasih!! 😍 ❤️
Terima kasih untuk umpan baliknya! Komit sedang dalam proses. 🚀 hingga edisi berikutnya.
Coba jawaban ini berhasil dengan saya
https://stackoverflow.com/a/41466634/1770571
@salmagomaa ini tidak menyelesaikan masalah dan merupakan Bug di dalam Zammad.
Harap coba untuk tidak mendaur ulang postingan - masalah telah teratasi.
Komentar yang paling membantu
Hai @schurig - Sepertinya saya mengerti! Apakah Anda menjalankan dengan instalasi NGINX? Jika demikian, harap perbarui konfigurasi Anda dan tambahkan dua baris berikut:
Seperti di tangkapan layar:
Mulai ulang NGINX dan Zammad Anda dan beri tahu saya. Apache harus menjadi baris ini:
Sebagai catatan: Saya membuang rack.envs melalui penginisialisasi yang menimpa deteksi ssl Omniauth di penginisialisasi rel baru
config/initializers/debug_ssl.rb
:Dan tidak ada var yang diperiksa dipasang.