Heim > Backend-Entwicklung > Golang > Warum werden meine HTTPOnly-Cookies nicht auf Localhost gesetzt?

Warum werden meine HTTPOnly-Cookies nicht auf Localhost gesetzt?

Susan Sarandon
Freigeben: 2024-11-25 05:02:11
Original
904 Leute haben es durchsucht

Why Aren't My HTTPOnly Cookies Being Set on Localhost?

HTTPOnly-Cookie wird nicht im lokalen Browser-Host festgelegt

Problem:

Anmeldung einer REST-API Der Endpunkt sendet ein HTTPOnly-Cookie mit Nutzlast (JWT), aber das Cookie wird nicht in Browsern gesetzt. Der Ansatz hatte jahrelang funktioniert, wurde aber kürzlich eingestellt. Das Problem ist auf die Localhost-Umgebung beschränkt. Postman-Tests bestätigen, dass das Cookie wie erwartet gesetzt ist.

Verwendete Ansätze:

  • Implementierung der Kernfunktionen des Login-Endpunkts in Go Fiber und Node Express.
  • Reduzierung des Frontends auf ein einfaches Login bilden.

Untersuchung:

Die Go- und Node-APIs senden beide korrekt den Set-Cookie-Header mit gesetztem HTTPOnly-Flag. Dies deutet darauf hin, dass das Problem möglicherweise im Browser oder der fetch()-Methode liegt.

Lösung:

Das Problem wurde durch Hinzufügen der Eigenschaft „credentials: „include““ behoben zur fetch()-Methode im Front-End-JavaScript. Diese Eigenschaft weist den Browser an, Cookies zu senden und zu empfangen.

Grund:

HTTPOnly-Cookies sollen verhindern, dass clientseitiges JavaScript auf den Inhalt des Cookies zugreift. Browser unterstützen dies, indem sie das Cookie standardmäßig nicht in XHR- oder fetch()-Anfragen senden. Durch das Hinzufügen der credentials: „include“-Eigenschaft wird der Browser explizit angewiesen, das Cookie zusammen mit der Anfrage zu senden, sodass es vom Server empfangen und entsprechend eingestellt werden kann.

Zusätzliche Hinweise:

  • Wenn Axios für HTTP-Anfragen verwendet wird, werden die Anmeldeinformationen automatisch in seine Konfiguration einbezogen.
  • Für Node Express, müssen Sie möglicherweise auch withCredentials: true in der Anforderungskonfiguration festlegen, damit der Browser das Cookie setzen kann.

Das obige ist der detaillierte Inhalt vonWarum werden meine HTTPOnly-Cookies nicht auf Localhost gesetzt?. 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