Ich habe Discourse auf meinem lokalen Rechner eingerichtet und wollte die SSO-Anmeldung einrichten. Ich kann den Benutzer umleiten, wenn er auf Anmelden klickt, aber wenn ich umgeleitet werde, erhalte ich ständig Fehler. Ich habe auch die Protokollierung aktiviert, und sie besagt: Nonce ist falsch, wurde in einer anderen Browsersitzung generiert oder ist abgelaufen
Unten ist die Python-Datei, die ich verwende: Discourse-setup/main.py at main · kamleshjoshi8102/Discourse-setup · GitHub
Bitte beachten Sie auch, dass es in meinem Fall auf Port 4201 läuft, daher habe ich bei der Anmeldung zu Port 4201 umgeleitet.
def nonce_valid?
if SiteSetting.discourse_connect_csrf_protection
nonce && @secure_session[nonce_key].present?
else
nonce && Discourse.cache.read(nonce_key).present?
end
end
Es wird überprüft, ob der Nonce von Discourse für dieselbe Sitzung generiert wurde wie diejenige, die den Benutzer zurück zu Discourse weiterleitet.
Sie könnten versuchen, die Site-Einstellung discourse_connect_csrf_protection auf false zu setzen. Ihr Standardwert ist true. Es ist eine versteckte Site-Einstellung, daher kann sie nur über die Rails-Konsole deaktiviert werden.
Wenn die Einstellung discourse_connect_csrf_protection aktiviert ist, stellt sie sicher, dass der gesamte SSO-Authentifizierungsprozess über Browser-Weiterleitungen erfolgt. Wenn Sie den Authentifizierungsprozess starten, indem Sie eine Hintergrundanfrage an session/sso stellen, müssen Sie ihn deaktivieren. Weitere Details hier: DiscourseConnect flow no longer functions - #5 by david.