dige hat geschrieben:Kann es sein, dass ein Cookie nur Serverseitig gesetzt werden kann?
Da bin ich mir gerade echt nicht sicher. Es sollte aber auch mit reinem Javascript gehen. In unseren Projekten auf der Arbeit macht das immer der Server. Denn nur der weiß ja welche SessionID sozusagen noch frei ist.
Cookies sind allerdings Domain-gebunden, wenn also deine Serveranfragen zu einem anderen Host gehen als die Anwendung läuft und du erzeugst das Cookie innerhalb des Sicherheitskontexts der Anwendung, dann wird das Cookie nicht an den Server gesendet. Das Problem kenne ich z.B. mit einem Angular-Frontend, das auf
http://localhost:4200 läuft und einem Server-Backend, das auf
https://example.com läuft. Da hast du zwei Probleme. Das eine ist http, das andere ist https. Und es sind unterschiedliche Domains und Ports. Im Server-Backend muss man dann z.B. diese Header setzen.
Apache-Syntax
Code: Alles auswählen
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?://(localhost:4200)$" AccessControlAllowOrigin=$0
Header set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header set Access-Control-Allow-Credentials true
Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, PUT"
Header set Access-Control-Allow-Headers content-type
Header add Access-Control-Allow-Headers authorization
</IfModule>