Maison >développement back-end >Golang >Pourquoi mes cookies HTTPOnly ne sont-ils pas définis sur Localhost ?
Le cookie HTTPOnly n'est pas défini dans le navigateur Localhost
Problème :
Connexion à une API REST le point de terminaison envoie un cookie HTTPOnly contenant la charge utile (JWT), mais le cookie n'est pas défini dans les navigateurs. Cette approche fonctionnait depuis des années, mais elle s'est récemment arrêtée. Le problème est isolé de l’environnement localhost. Les tests Postman confirment que le cookie est défini comme prévu.
Approches utilisées :
Enquête :
Les API Go et Node envoient toutes deux correctement l'en-tête Set-Cookie avec l'indicateur HTTPOnly défini. Cela indique que le problème peut provenir du navigateur ou de la méthode fetch().
Solution :
Le problème a été résolu en ajoutant les informations d'identification : propriété "include" à la méthode fetch() dans le JavaScript frontal. Cette propriété demande au navigateur d'envoyer et de recevoir des cookies.
Raison :
Les cookies HTTPOnly sont conçus pour empêcher le JavaScript côté client d'accéder au contenu du cookie. Les navigateurs prennent en charge cela en n'envoyant pas le cookie dans les requêtes XHR ou fetch() par défaut. En ajoutant les informations d'identification : propriété "include", le navigateur est explicitement invité à envoyer le cookie avec la demande, lui permettant d'être reçu par le serveur et défini de manière appropriée.
Remarques supplémentaires :
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!