web-dev-qa-db-fra.com

Comment pouvez-vous utiliser des cookies avec superagent?

Je fais la gestion de session de cookie avec express avec quelque chose comme ceci:

req.session.authentication = auth;

Et je vérifie les URL authentifiées avec quelque chose comme

if(!req.session.authentication){res.send(401);}

Maintenant, je construis des tests pour les URL avec mocha, superagent et should , mais je n'arrive pas à trouver un moyen d'obtenir/définir le cookie avec superagent. J'ai même essayé de demander la connexion avant le test authentifié mais cela ne fonctionne pas,

J'ai essayé d'ajouter la demande à la connexion dans l'instruction avant pour la suite BDD mocha, mais cela me dit toujours que la demande n'est pas autorisée, j'ai testé l'authentification en faisant les demandes depuis le navigateur, mais cela ne fonctionne pas depuis le suite des idées pourquoi?

33
Kuryaki

Utilisez superagent.agent() (au lieu du vieux superagent) pour faire des requêtes avec des cookies persistants. Voir 'Préservation des cookies' dans les documents de superagent , ou les exemples de code: agency.js , controller.test.js .

29
Gaurav

Il semble que le code suivant fonctionne correctement;

req.set ('Cookie', "cookieName1 = cookieValue1; cookieName2 = cookieValue2");

16
Teoman shipahi

Si le problème est lié à l'envoi de cookies pour les demandes CORS, utilisez la méthode .withCredentials()décrite ici

request
  .get('http://localhost:4001/')
  .withCredentials()
  .end(function(err, res) { })
8
Denys Feshchenko

Puisque vous avez mentionné, vous devez à la fois obtenir et définir le cookie:

Avoir:

const request = await Superagent.get('...')

const cookie = request.header['set-cookie']

Ensemble:

Superagent.post('...').set('Cookie', 'cookie_info')
2
BAR