web-dev-qa-db-fra.com

Le cookie n'est pas défini sur localhost en chrome ou firefox

Je travaille avec un serveur Jersey qui renvoie un cookie de la manière suivante:

return Response.ok()
    .cookie(
        new NewCookie(
            "userAccessToken", userTokenDTO.getToken(), "/", "", 
            "what is this", 3600, false
        )
    ).build();

Lorsque j'appelle la méthode qui renvoie le cookie, le résultat suivant est chromé:  Request and response headers

Je peux même voir que chrome a reconnu mon cookie:  Cookie recognized

Mais pour une raison quelconque, il n'est pas défini dans l'onglet cookie:

 No cookie shown

J'ai essayé de définir le domaine à la fois sur false, null, "", créant une entrée dans le fichier hosts en renommant 127.0.0.1.

return Response.ok()
    .cookie(
            new NewCookie(
                    "userAccessToken", userTokenDTO.getToken(), "/", "127.0.0.1",
                    "what is this", 3600, false)
    ).build();

Fonctionne dans IE 11, mais toujours pas Chrome ni Firefox ...

J'ai essayé plusieurs fois d'insérer un autre nom d'hôte pour 127.0.0.1. Dans cet exemple, il s'agit de text.myexample.com. Il ne fonctionne toujours pas dans un autre navigateur que IE11. 

return Response.ok()
    .cookie(
            new NewCookie(
                    "userAccessToken", userTokenDTO.getToken(), "/", "test.myexample.com",
                    "what", 7200, false)
    ).build();

J'ai essayé de faire ce qui suit dans la console de Google Chrome:

document.cookie = "userAccessToken=72bebbe0-44fd-45ce-a6e1-accb72201eff;Version=1;Comment=what;Domain=test.myexample.com;Path=/;Max-Age=7200"

Quel est le cookie dans l'en-tête renvoyé par le serveur dans Chrome. Cela fonctionne bien. Je n'ai littéralement aucune idée de ce qui se passe ici.

11
Amnestic

Il s'avère que le problème était lié à la bibliothèque de récupération que j'utilise. Si vous n'incluez pas {informations d'identification: 'origine identique'} dans la demande, le cookie de réponse n'est pas défini. 

Pour plus d'informations, voir https://github.com/github/fetch/issues/386 .

6
Amnestic

C’est un problème qui concerne uniquement localhost, fonctionne bien sur les autres URL. Voir le lien ci-dessous ici. Le cookie fonctionne, mais il échoue localement Http://jerseyexample-ravikant.rhcloud.com/rest/jws/say/Hi

pour localhost, vous pouvez aller avec ci-dessous.

return Response.status(200).entity(output)

                .header("Set-Cookie", "userAccessToken=toke;lang=en-US; Path=/; Domain=localhost")
                .build(); 

enter image description here

Voir l'onglet réseau 

En-têtes de réponse Content-Length: 18 Content-Type: text/html Date: ven. 25 nov. 2016 10:19:15 GMT ProcessingTime: 0 millisecs Serveur: Apache-Coyote/1.1 Set-Cookie: userAccessToken = toke; lang = en-US; Path = /; Domain = localhost

Network tab

0
gladiator