SSO funktioniert nicht mehr 🤔

Hey Leute!

Ich verarbeite die SSO-Authentifizierung in meinem PHP-Backend. Ich beginne damit, eine curl-Anfrage an meine SSO-URL (Communauté et formation pour entrepreneurs) zu senden, um das SSO-Payload und die SIG zu erhalten, und erstelle dann mein eigenes Payload, um die korrekte Weiterleitungs-URL zu generieren.

Hier wird es seltsam…

Wenn ich Communauté et formation pour entrepreneurs in meinem Browser aufrufe, das SSO und die SIG kopiere und in mein Skript einfüge, funktioniert die endgültige Weiterleitungs-URL.

Wenn ich sie jedoch ĂĽber CURL erhalte, wird bei der endgĂĽltigen Weiterleitung eine Fehlermeldung angezeigt, und in meinem Log steht folgendes:

Verbose SSO log: Nonce has already expired

Ich bin ratlos… Das Problem scheint aus dem Nichts aufgetreten zu sein, und jetzt können sich meine Benutzer nicht mehr anmelden.

Hat Discourse etwas geändert, um zu verhindern, dass Bots auf /session/sso zugreifen?

Ja, der nonce ist nun an die Sitzung des Benutzers gebunden, für den er generiert wurde. Es scheint, als ob das Problem, das du hast, damit zusammenhängt:

Anstatt eine curl-Anfrage zu stellen, wird erwartet, dass der zu authentifizierende Benutzer /session/sso besucht, entweder indem er auf die Anmeldeschaltfläche der Website klickt oder von deiner Anwendung zu /session/sso weitergeleitet wird. Wenn dies geschieht, wird er von Discourse zurück zu deiner Anwendung weitergeleitet. Der nonce, der in diesem Payload enthalten ist, wird gültig sein.

Das war das, was ich tun musste, um das Problem zu beheben, aber dadurch funktioniert mein asynchroner Anmeldevorgang nicht mehr. :frowning: Mir hat diese Vorgehensweise wirklich gut gefallen.

Ich habe es auch versucht, es über Axios zu lösen. Ich hätte erwartet, dass es funktioniert, da die Anfrage vom Client kommt. Es scheint aber auch nicht zu funktionieren.

Falls dir eine Idee einfällt, wie ich einen asynchronen Anmeldevorgang implementieren könnte, freue ich mich über jeden Tipp! In jedem Fall vielen Dank für deine Antwort, das wird sehr geschätzt.