Cookies werden nicht mit Fetch @ gespeiche
Ich habe jedes andere Thema gelesen, das ich zu diesem Thema finden konnte, und keine der Lösungen hat funktioniert. Ich verwende React + Redux + Express und versuche, eine JWT in einem Cookie zu speichern, wie folgt:
https: //auth0.com/blog/2015/09/28/5-steps-to-add-modern-authentication-to-legacy-apps-using-jwts
In meiner Redux-Aktion sende ich die folgende Anfrage:
export function getCookie(token) {
const config = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
},
body: JSON.stringify({ token })
};
return fetch('http://127.0.0.1:4000/authorize-cookie', config)
.then((res) => {
return res.json();
})
.then((resJson) => {
return resJson;
})
.catch(err => console.log('Error: ', err));
}
Und auf dem Server antworte ich mit ...
app.post('/authorize-cookie', authenticate, (req, res) => {
res.cookie('id_token', req.body.token, {
maxAge: 360000
});
res.status(200).send({ message: 'Cookie set!' });
});
... wobei authentifizieren eine Funktion ist, die das Token überprüft.
Alles scheint in Ordnung mit meinem Antwort-Header:
HTTP/1.1 200 OK
Set-Cookie: id_token=xxx.xxx.xxx; Max-Age=360; Path=/; Expires=Tue, 12 Jan 2016 01:24:03 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 25
ETag: W/"19-UA3htFr0PWczMQBN6T4NpA"
Date: Tue, 12 Jan 2016 01:18:03 GMT
Connection: keep-alive
Aber wenn ich die Registerkarte "Quellen" überprüfe, wird kein Cookie gefunden. Ich habe gelesen, wie man httpOnly und Secure ausschaltet und Probleme mit der Verwendung von localhost. Ich habe es auch in allen gängigen Browsern versucht und kein Glück.
Was ist denn hier los