Maison  >  Article  >  développement back-end  >  Pourquoi mes cookies HTTPOnly ne sont-ils pas définis dans le navigateur sur Localhost ?

Pourquoi mes cookies HTTPOnly ne sont-ils pas définis dans le navigateur sur Localhost ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-18 19:55:02118parcourir

Why Aren't My HTTPOnly Cookies Setting in the Browser on Localhost?

Cookie HTTP uniquement non défini dans le navigateur sur Localhost

Problème :

Dans une API REST avec un point de terminaison de connexion qui génère un cookie HTTPOnly, le cookie n'était plus défini dans le navigateur, même si les requêtes POST via Le facteur a fonctionné correctement. Ce problème s'est produit malgré l'utilisation d'approches qui fonctionnaient auparavant.

Approches utilisées :

  • Création d'une implémentation Go minimale de l'API REST.
  • Création d'une implémentation Node à l'aide d'Express et axios.
  • Analyse des réponses d'en-tête et test des code frontal.

Résultats :

  • Les API Go et Node ont toutes deux envoyé le cookie HTTPOnly dans leurs en-têtes de réponse.
  • Cependant, les cookies n'étaient pas installés dans les navigateurs testé.

Solution :

Le problème venait du JavaScript côté client (méthode fetch()). En ajoutant l'option 'credentials: "include"' à l'objet RequestInit, le navigateur était autorisé à envoyer et à recevoir des cookies avec la demande. Ceci est nécessaire pour que les cookies HTTPOnly soient définis dans le navigateur.

Informations supplémentaires :

  • Axios définit automatiquement l'option « informations d'identification : « inclure » ».
  • Si vous utilisez Axios, 'withCredentials: true' doit être inclus dans le troisième argument de configuration de la requête pour activer le paramètre de cookie du navigateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn