Maison  >  Article  >  développement back-end  >  Pourquoi mon navigateur n'enregistre-t-il pas les cookies de mon backend Go à moins que je spécifie « informations d'identification : \'include\' ?

Pourquoi mon navigateur n'enregistre-t-il pas les cookies de mon backend Go à moins que je spécifie « informations d'identification : \'include\' ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-24 10:48:10731parcourir

Why Doesn't My Browser Save Cookies from My Go Backend Unless I Specify `credentials:

Le navigateur ne parvient pas à conserver le cookie

Dans le but de construire une application React avec un back-end Go, un cookie est défini lors de la réponse à une requête en utilisant http.cookie . Malgré cela, le navigateur ne parvient pas à stocker le cookie. Ce problème a été rencontré dans Chrome et Firefox.

En y regardant de plus près, il a été remarqué que l'attribut 'credentials' est absent de la requête de l'API Fetch attendant une réponse contenant un cookie. En incorporant « informations d'identification : "inclure" » dans la requête, le navigateur est capable de sauvegarder le cookie acquis à partir de la réponse.

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

Cette révélation met en évidence l'importance de définir des « informations d'identification » pour « inclure » ​​dans demandes attendant des cookies dans la réponse. L'absence de cet attribut empêche le navigateur de stocker le cookie, ce qui entraîne le problème susmentionné.

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