Heim > Backend-Entwicklung > Golang > Warum speichert mein Browser keine von meinem Go-Server gesetzten Cookies in einer React-App?

Warum speichert mein Browser keine von meinem Go-Server gesetzten Cookies in einer React-App?

Patricia Arquette
Freigeben: 2024-12-01 13:02:09
Original
684 Leute haben es durchsucht

Why Doesn't My Browser Store Cookies Set by My Go Server in a React App?

Browser lehnt das Speichern von Cookies ab

Problembeschreibung

In einer React-Anwendung, die in einen Go-Server integriert ist, versucht der Server, während des Vorgangs ein Cookie zu setzen Login-Antwort. Das Cookie wird jedoch nicht vom Browser gespeichert, obwohl es in der Antwort des Netzwerk-Tabs zurückgegeben wird.

Exploration

Die bereitgestellten Codeausschnitte zeigen Folgendes an:

  • Cross-Origin Resource Sharing (CORS) ist so konfiguriert, dass Anmeldeinformationen zugelassen werden.
  • Die Die Funktion http.SetCookie() wird verwendet, um das Cookie mit den folgenden Einstellungen zur Antwort hinzuzufügen:

    • Name: „accessToken“
    • Wert: token
    • Max Alter: als Ganzzahl angegeben
    • Pfad: „/api“
    • Nur ​​HTTP: wahr
    • SameSite: LaxMode

Screenshots von der Registerkarte „Netzwerk“ zeigen, dass das Cookie tatsächlich in den Antwortheadern zurückgesendet wird.

Lösung

Der Schlüssel zur Lösung dieses Problems liegt im Anmeldeinformations-Flag der Fetch-API. Wenn Sie eine Abrufanforderung stellen, die ein Cookie in der Antwort vorwegnimmt, müssen unbedingt die Anmeldeinformationen festgelegt werden: „include“.

Bearbeiteter Code:

fetch(`${url}/login`, {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
    },
    credentials: "include", // This line has been added
    body: JSON.stringify({
        email: userDetails.email,
        password: userDetails.password,
    }),
}).then((response) => { ...
Nach dem Login kopieren

Durch das Festlegen der Anmeldeinformationen auf „include“ Der Browser versteht, dass er das in der Antwort enthaltene Cookie akzeptieren und speichern sollte. Diese Konfiguration stellt sicher, dass der Browser das Cookie korrekt speichert und für spätere Anfragen verfügbar macht.

Das obige ist der detaillierte Inhalt vonWarum speichert mein Browser keine von meinem Go-Server gesetzten Cookies in einer React-App?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage