Maison >développement back-end >Golang >Pourquoi mon navigateur ne stocke-t-il pas les cookies issus des demandes d'origine croisée ?

Pourquoi mon navigateur ne stocke-t-il pas les cookies issus des demandes d'origine croisée ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-24 20:49:18302parcourir

Why Won't My Browser Store Cookies from Cross-Origin Requests?

Le navigateur refuse de stocker les cookies dans les requêtes d'origine croisée

Description du problème :

Une application React utilisant un serveur Go rencontre des difficultés à stocker un cookie envoyé dans la réponse à la demande de connexion malgré sa configuration réussie. Le cookie est visible dans l'onglet réseau, mais les navigateurs (Chrome et Firefox) ne l'enregistrent pas.

Cause profonde et solution :

Après une enquête plus approfondie, il a été découvert que l'ingrédient manquant était l'indicateur « informations d'identification » dans la demande de récupération. La configuration de « informations d'identification : « inclure » » permet au navigateur de gérer et de stocker les cookies reçus dans la réponse. La demande de récupération corrigée est :

fetch(`${url}/login`, {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
    },
    credentials: "include", // This here
    body: JSON.stringify({
        email: userDetails.email,
        password: userDetails.password,
    }),
}).then((response) => { ...

Précautions supplémentaires :

  • Assurez-vous que le serveur est configuré avec le gestionnaire CORS pour autoriser les requêtes d'origine croisée avec informations d'identification.
  • Pour les configurations CORS personnalisées, définissez « AllowCredentials » sur vrai.
  • Vérifiez les en-têtes de réponse pour confirmer que le cookie est défini comme prévu.

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