Wie kann man Cookies über den Ursprung hinweg teilen? Genauer gesagt, wie wird der Set-CookieHeader in Kombination mit dem Header verwendet Access-Control-Allow-Origin?
Hier ist eine Erklärung meiner Situation:
Ich versuche, ein Cookie für eine API zu setzen, die localhost:4000in einer Web-App ausgeführt wird, auf der gehostet wird localhost:3000.
Es scheint, dass ich die richtigen Antwortheader im Browser erhalte, aber leider haben sie keine Auswirkung. Dies sind die Antwortheader:
HTTP / 1.1 200 OK Zugriffskontrolle-Zulassen-Ursprung: http: // localhost: 3000 Variieren: Ursprung, Akzeptieren-Codierung Set-Cookie: token = 0d522ba17e130d6d19eb9c25b7ac58387b798639f81ffe75bd449afbc3cc715d6b038e426adeac3316f0511dc7fae3f7; Maximales Alter = 86400; Domain = localhost: 4000; Pfad = /; Läuft ab = Di, 19. September 2017 21:11:36 GMT; HttpOnly Inhaltstyp: application / json; Zeichensatz = utf-8 Inhaltslänge: 180 ETag: W / "b4-VNrmF4xNeHGeLrGehNZTQNwAaUQ" Datum: Montag, 18. September 2017, 21:11:36 Uhr GMT Verbindung: am Leben bleiben
Außerdem kann ich das Cookie unter sehen, Response Cookieswenn ich den Datenverkehr mithilfe der Registerkarte "Netzwerk" der Chrome-Entwicklertools überprüfe. Ich kann jedoch nicht sehen, dass auf der Registerkarte Anwendung unter ein Cookie gesetzt wird Storage/Cookies. Ich sehe keine CORS-Fehler, daher gehe ich davon aus, dass mir etwas anderes fehlt.
Irgendwelche Vorschläge?
Update I:
Ich verwende das Anforderungsmodul in einer React-Redux-App, um eine Anforderung an einen /signinEndpunkt auf dem Server zu senden. Für den Server benutze ich Express.
Express-Server:
res.cookie ('Token', 'xxx-xxx-xxx', {maxAge: 86400000, httpOnly: true, Domain: 'localhost: 3000'})
Anfrage im Browser:
request.post ({uri: '/ signin', json: {userName: 'userOne', Passwort: '123456'}}, (err, response, body) => {
// Sachen tun
})
Update II:
Ich setze Anforderungs- und Antwortheader jetzt wie verrückt und stelle sicher, dass sie sowohl in der Anforderung als auch in der Antwort vorhanden sind. Unten ist ein Screenshot. Beachten Sie die Header Access-Control-Allow-Credentials, Access-Control-Allow-Headers, Access-Control-Allow-Methodsund Access-Control-Allow-Origin. Wenn ich mir das Problem ansehe , das ich bei Axios 'Github gefunden habe , habe ich den Eindruck, dass jetzt alle erforderlichen Header gesetzt sind. Trotzdem gibt es kein Glück ...


