it-swarm.com.de

Cookie ist nicht auf localhost in Chrome oder Firefox gesetzt

Ich arbeite mit einem Jersey-Server, der ein Cookie auf folgende Weise zurückgibt:

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

Wenn ich die Methode anrufe, die den Cookie zurückgibt, erhalte ich folgendes Ergebnis in chrom:  Request and response headers

Ich kann sogar sehen, dass Chrome meinen Cookie erkannt hat:  Cookie recognized

Aber aus irgendeinem Grund ist es nicht in der Cookie-Registerkarte gesetzt:

 No cookie shown

Ich habe versucht, die Domäne auf "false", "null" "" zu setzen, einen Eintrag in der Hosts-Datei zu erstellen, die 127.0.0.1 umbenennt.

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

Funktioniert in IE 11, aber immer noch weder Chrome noch Firefox ...

Ich habe mehrmals versucht, einen anderen Hostnamen für 127.0.0.1 einzufügen. In diesem Beispiel ist es text.myexample.com. Es funktioniert immer noch nicht in einem anderen Browser als IE11. 

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

Ich habe versucht, Folgendes in der Konsole von Google Chrome auszuführen:

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

Dies ist der Cookie in der Kopfzeile, der vom Server in Chrome zurückgegeben wird. Das funktioniert gut. Ich habe buchstäblich keine Ahnung, was hier vor sich geht.

11
Amnestic

Es stellte sich heraus, dass das Problem mit der Abrufbibliothek zusammenhängt, die ich verwende. Wenn Sie {credentials: 'same-Origin'} nicht in die Anfrage aufnehmen, wird das Antwort-Cookie nicht gesetzt. 

Weitere Informationen finden Sie unter https://github.com/github/fetch/issues/386 .

6
Amnestic

Es ist nur ein Problem mit localhost, funktioniert gut mit anderen URLs, siehe unten link hier cookie funktioniert, aber in local schlägt es fehl http://jerseyexample-ravikant.rhcloud.com/rest/jws/say/Hi

für localhost kannst du unten gehen.

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

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

 enter image description here

Siehe die Registerkarte "Netzwerk" 

Antwort-Header Inhaltslänge: 18 Inhaltstyp: text/html Datum: Fr, 25 Nov 2016 10:19:15 GMT Verarbeitungszeit: 0 millisecs Server: Apache-Coyote/1.1 Set-Cookie: userAccessToken = toke; lang = de-US; Pfad = /; Domäne = localhost

 Network tab

0
gladiator