Question Difficulté d'envoyer des cookies avec des requêtes d'extraction en JavaScript


J'ai deux services distincts, un React application d'une page et un express API et j'essaie de communiquer du SPA à l'API en utilisant le nouveau fetch fonctionnalité. Comme les deux services sont situés sur des domaines différents, j'utilise un middleware CORS à l’intérieur du express application afin de faire des demandes du SPA à l'API. J'essaie de faire n'importe quoi fetch les demandes incluent également les cookies de sorte que je puisse vérifier les cookies dans mon express application, par exemple

Côté client:

fetch('http://localhost:8000/hello', { 
    credentials: 'include', 
    mode: 'cors' 
}).then(/* ... */)

Côté serveur:

var app = express();

app.use(cors({ credentials: true });
app.use(cookieParser());

app.get('/hello', function (req, res) {
  // Try and find the cookies sent with the request
  console.log(req.cookies);

  res.status(200).json({ message: 'cookies received!' });
});

Cependant, peu importe ce que je tente, je ne peux toujours pas accéder aux cookies sur le request objet même si je peux y accéder en utilisant document.cookies.

Un exemple de cookie:

name: token
value: TOKEN_VALUE
domain: localhost
path: /
http: false
secure: false

Est-ce que quelqu'un a des suggestions sur la façon d'aborder cette question? Toute aide serait grandement appréciée!


10
2018-04-15 22:57


origine


Réponses:


La bibliothèque de récupération de polyfill que vous utilisez n’est pas à la date d’écriture. Pour les informations d'identification, il faut s'attendre à ce que les «cors» soient la valeur par opposition à «include». Je voudrais éditer ma copie locale de fetch.js sur la ligne 264 pour adapter le standard, soumettre une demande de tirage, et être à l'affût d'une bibliothèque de polyfill mieux supportée.

Voir le numéro ouvert: https://github.com/github/fetch/issues/109

https://github.com/github/fetch

https://developer.mozilla.org/en-US/docs/Web/API/GlobalFetch/fetch


7
2018-04-16 02:19