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. 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.