Ich habe ein paar Stunden lang zu meinem Problem recherchiert und glaube, dass ich kurz davor bin, aber vielleicht einen kleinen Anstoß in die richtige Richtung brauche.
Ich versuche im Grunde, Discourse als Headless-Implementierung in mein React-Projekt zu integrieren, das bereits authentifizierte Benutzer in seiner eigenen Datenbank enthält.
Um dies zu tun, wird beim Einloggen des Benutzers auf der React-Seite ein SSO durchgeführt, damit sich der Benutzer bei der Discourse-API authentifizieren kann, damit wir die entsprechenden Funktionen usw. aufrufen können.
Ich rufe also zuerst meine Discourse-URL ab und verhindere alle Weiterleitungen wie folgt:
const response = await fetch('https://forum.mysite.com/session/sso', {
method: 'GET',
redirect: 'manual', // Verhindert das automatische Folgen von Weiterleitungen
});
Dann mache ich die ganze Validierungs-Sache und sende die Payload mit den Benutzerinformationen mit folgendem an das Backend:
const loginResponse = await fetch(newurl.toString(), {
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'manual',
});
Und die Formatierung, Signatur und so weiter sehen alle gut aus. Aber es gibt mir einen Fehler. Also habe ich das auskommentiert und die generierte URL kopiert und in meinen Browser eingefügt, um zu sehen, was los ist, und es gibt mir Folgendes:
Verbose SSO log: Nonce is incorrect, was generated in a different browser session, or has expired add_groups: admin: avatar_force_update: avatar_url: bio: card_background_url: confirmed_2fa: e
Nach einigem Recherchieren glaube ich, dass diese Antworten nahe daran sind, mir zu helfen, aber ich bin mir immer noch nicht ganz klar, was ich für mein Setup ändern soll, und force_https scheint keine Einstellung mehr zu sein, die wir manipulieren können (ich weiß nicht einmal, was es tut):
Ich habe das Gefühl, dass es möglicherweise durch unterschiedliche Browsersitzungen verursacht wird, aber ich weiß es nicht. Ich glaube, ich bin kurz davor, das zum Laufen zu bringen, ich brauche nur einen kleinen Anstoß. Jede Information wäre hilfreich. Danke!
