DiscourseConnect generiert HTTP-Weiterleitungen, auch wenn force_https aktiviert ist

So machen wir das auf unserer Hosting-Plattform; wir haben eine Load-Balancer-Schicht, die X-Forwarded-Proto für das nachgelagerte Nginx+Discourse setzt, damit es diese Informationen verbrauchen kann.

Wir brauchen keine zusätzlichen Tricksereien, damit es funktioniert - ich bin mir nicht sicher, was bei Ihnen schiefgeht.

Das ist tatsächlich das, was passiert:

  def self.generate_sso(return_path = "/", secure_session:)
    sso = new(secure_session: secure_session)
    sso.nonce = SecureRandom.hex
    sso.register_nonce(return_path)
    sso.return_sso_url = Discourse.base_url + "/session/sso_login"
    sso
  end

und base_url kommt von:

  def self.base_protocol
    SiteSetting.force_https? ? "https" : "http"
  end

  def self.base_url_no_prefix
    "#{base_protocol}://#{current_hostname_with_port}"
  end

  def self.base_url
    base_url_no_prefix + base_path
  end