Login-Fehler nur auf einer Website in einem Multisite-System

Ich habe eine Hauptseite für Discourse mit 6 weiteren Unterseiten, die jeweils eine eigene Domain und Datenbank haben.

Anfänglich habe ich die Datenbank der Hauptseite kopiert, um die Konsistenz zu wahren, und es funktioniert gut mit den anderen 5 Unterseiten.

Nur bei einer Seite, wann immer ich versuche, mich anzumelden:

  • Wenn es über OIDC geschieht, erhalte ich auf einem leeren Bildschirm die Fehlermeldung “Sorry, the authorization timed out, or you have switched browsers. Please try again.” (Entschuldigung, die Autorisierung ist abgelaufen oder Sie haben den Browser gewechselt. Bitte versuchen Sie es erneut.)
  • Wenn es über Benutzername/Passwort geschieht, erhalte ich über dem Feld für Benutzername/Passwort die Meldung “Unknown error” (Unbekannter Fehler).

Ich habe sogar die Datenbank von einer funktionierenden Seite auf die neue kopiert, aber es funktioniert nicht.

Unten ist die Multisite-Konfiguration, falls sie hilft.

     oneexample:
       adapter: postgresql
       database: oneexample
       username: adminexample
       password: pwexample
       host: 192.168.1.1
       port: 5432
       pool: 25
       timeout: 5000
       db_id: 5
       host_names:
         - 1example.com

Der Grund, warum ich ‘oneexample’ und ‘1example’ gewählt habe, ist, dass die Domain eine Zahl am Anfang enthält. Mein einziger Verdacht bisher ist, dass die Zahl das Problem verursacht, denn das Zurückkopieren der Datenbank auf eine funktionierende Seite ohne Zahl im Domainnamen funktioniert gut.

Manche mögen sagen, ich sollte eine andere Domain wählen, aber diese hier ist eine recht teure bezahlte Domain, und ich möchte sie zum Laufen bringen.

Ich habe Browser-Cookies gelöscht, Anmelde-Logs aus der Datenbank gelöscht und auch andere Domains mit derselben Datenbank ausprobiert. Alles funktionierte gut.

Eine potenzielle Lösung, die ich noch nicht getestet habe, ist die Änderung der Domain in eine Subdomain, nur um die Zahl am Anfang der Domain-Adresse zu ersetzen, wie z.B.

Aber auch hier geht der Sinn des zahlens von $$$ für diese Premium-Domain verloren.

Schaue ich an der falschen Stelle? Gibt es eine funktionierende Lösung?

habe es auch mit host_names: xxx.1example.com versucht, aber es gibt denselben Fehler.

Mit derselben Datenbank habe ich es erfolgreich mit einer Reihe von URLs ohne Nummer versucht. Es scheint mit dem Domain-Problem zusammenzuhängen, aber ich habe keine weiteren Hinweise.

Aus meinem Nginx-location-Block,

proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto $scheme;

habe ich die letzte Zeile entfernt, da ihre Funktion mit den ersten beiden Zeilen dupliziert wird. Anscheinend hat Discourse den Login fälschlicherweise als von HTTP kommend erkannt, anstatt von HTTPS.

Ich habe auch die folgende Zeile in die app.yml eingefügt, um sicherzustellen, dass Discourse die Anmeldung über HTTPS versucht, und schließlich hat es funktioniert.

  • DISCOURSE_FORCE_HTTPS: true

Die Hauptfrage ist also, wie hat es für die anderen 5 Sub-Websites funktioniert?

da hast du mich

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.