[3.0] [Cookie] Cookie ExpireTime immer 1970

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von dr.e. » 14.04.2015, 21:01:05

Ausserdem: Grünes Licht, das UMGT läuft wieder rund.
Freut mich! Endlich geschafft! :)
Einzig der HtmlHeader macht noch Probleme, aber die Umsetzung ist ja auch noch nicht vollständig abgeschlossen.
Mit meinem Commit grade eben sollte die Umstellung des Codes hinsichtlich der ServiceManager-Änderung vollständig sein. Es fehlt noch ein Migrations-Skript. Wo siehst du da noch Probleme?
Ausserdem 2: Herzlichen Dank für deine erstklassige Unterstützung. :geek:
Vielen Danke! Es ist mir eine Ehre! :)
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von dave » 14.04.2015, 21:07:31

dr.e. hat geschrieben: Mit meinem Commit grade eben sollte die Umstellung des Codes hinsichtlich der ServiceManager-Änderung vollständig sein. Es fehlt noch ein Migrations-Skript. Wo siehst du da noch Probleme?
Glücklicherweise nirgends mehr, sodass wir das Thema wirklich als beendet betrachten können. Das Problem, welches ich meinte betraf die CacheManagerFabric und das ist ja schon gelöst :)

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von dr.e. » 14.04.2015, 21:59:03

Jep, ist gelöst! Danke für den Hinweis! :)
Viele Grüße,
Christian

GeneralCrime
Beiträge: 77
Registriert: 14.12.2011, 07:13:16

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von GeneralCrime » 02.10.2015, 13:59:18

Hallo,
ich hänge grad bei der 2.1 Version daran das ich mich nicht Ausloggen kann.

UmgtLogoutAction löscht korrekt den User aus dem Store, das Cookie bleibt jedoch unverändert.
Somit schreibt die UmgtAutoLoginAction den User wieder in den Store.
Lösche ich den Cookie klappt alles wunderbar.

Habe mittels Debug das Script nach dem löschen angehalten und dann den Cookie angeschaut.
Das Ablaufdatum hat sich nicht verändert.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von dr.e. » 03.10.2015, 09:11:47

Hi,

das ist natürlich blöd! Entweder der Browser nimmt den genutzten Wert (0 oder null auf dem Server) Nicht richtig an - das hatte ich schon einmal beobachtet - oder es ist wirklich ein Bug.

Funktioniert es in allen Browsern mit 2.1 nicht? Kannst du das Problem auch mit 3.0.1 nachstellen?
Viele Grüße,
Christian

GeneralCrime
Beiträge: 77
Registriert: 14.12.2011, 07:13:16

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von GeneralCrime » 03.10.2015, 17:56:55

Habe bei 2.1 nun mit Chrome (Standard) und FF versucht beides hat nicht Funktioniert.
Habe die 3.0.1 Version die Sandbox installiert und dort das UMGT. Habe mich eingeloggt mit (Login merken) dann kommt ja sie sind eingeloggt klicken sie hier, auch dieses fürte nicht zum Ausloggen!

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von dr.e. » 03.10.2015, 21:25:58

Hi,

vielen Dank fürs Testen und validieren! Dann ist das offenbar ein Bug. Ich kümmere mich am Montag um die Behebung und melde mich wieder bei dir (bin im Moment unterwegs).
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von dave » 04.10.2015, 12:57:34

Merkwürdig, bei mir funktioniert das Ausloggen im APF 3.0.1

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von dr.e. » 05.10.2015, 22:25:07

Hallo zusammen,

ich habe eine Weile gebraucht bis ich das Problem nachvollziehen konnte. Zuerst ist es mir auch wie dave gegangen, dann habe ich einen alten Safari 5.1.7 ausgegraben und mit dem konnte ich das Phenomen tatsächlich nachvollziehen.

Problem scheint, dass der Browser bei einer HTTP 303 Antwort ein

Code: Alles auswählen

Set-Cookie:umgt-auth-token=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
nicht richtig interpretiert und beim anschließenden Aufruf des Ziels ein

Code: Alles auswählen

Cookie umgt-auth-token=47a298702e9ec4cf32d0efabc1db5a96
wieder mit sendet. Damit loggt dich die Applikation aus und gleich wieder ein. :roll:

Ferner wird in Chrome auf Grund von http://stackoverflow.com/questions/1134 ... cit-domain das umgt-auth-token-Cookie lokal nicht gesetzt. Zum Test habe ich den Code des APF\modules\usermanagement\pres\documentcontroller\login\LoginController manipuliert und die Cookie-Domain auf einen leeren String gesetzt. Dadurch wird das Cookie angenommen und das Login/Logout funktioniert fehlerfrei.

Ändere ich den Redirect zu einem HTTP 307 bzw. HTTP 308, so scheint auch Safari das Cookie zu löschen - allerdings nur scheinbar, denn es wird dann mit dem Wert "deleted" gefüllt und beim erneuten Request so an den Server übergeben. Da der Token natürlich so nicht existiert findet auch kein (Re-)Login mehr statt. Alles in Allem eine sehr komische Geschichte.

Ich fürchte ich kann dir keine schnelle Lösung anbieten. Magst du mal bei dir ausprobieren ob folgendes hilft (basierend auf 3.0.1):

APF\modules\usermanagement\pres\documentcontroller\login\LoginController:160

Code: Alles auswählen

$cookie = new Cookie(UmgtAutoLoginAction::AUTO_LOGIN_COOKIE_NAME, time() + $cookieLifeTime, ''); 
APF\modules\usermanagement\biz\login\UmgtLogoutAction:55

Code: Alles auswählen

self::getResponse()->redirect(LinkGenerator::generateUrl(Url::fromString($urlProvider->getRedirectUrl()))); 
Einfach die genannten Zeilen mit dem geposteten Code ersetzen.

Um das weiter einzugrenzen wäre interessant, welche PHP-Version du nutzt und wie deine lokale Domäne heißt (speziell wegen der Annahme der Cookies; siehe Stackoverflow-Link).
Viele Grüße,
Christian

GeneralCrime
Beiträge: 77
Registriert: 14.12.2011, 07:13:16

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von GeneralCrime » 06.10.2015, 12:38:42

Habe die Daten geändert ohne erfolg

Domain: 127.0.0.1
PHP: 5.6.11 local und 5.4.* im netz darum läuft da auch noch das 2.1 APF da ich mich nicht ran traue eine neue version zu kompellieren.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: [3.0] [Cookie] Cookie ExpireTime immer 1970

Beitrag von dr.e. » 06.10.2015, 18:28:57

Hi,

kannst du mal in deine hosts-Datei einen CNAME für 127.0.0.1 eintragen und deinen Apachen darauf konfigurieren? Das hatte bei mir auf jeden Fall vor ein paar Jahren geholfen lokal das Cookie-Thema zum laufen zu bringen (siehe Link oben). Wichtig ist, dass die Domain/der CNAME mindestens einen Punkt hat (z.B. dev.local).

Sollte das nichts helfen, schau dir mal die Netzwerk-Traces an ob das Cookie mit dem ersten Request (=Action-Aufruf) auch als gelöscht vom Server markiert wird und wie sich dein Browser beim zweiten Request verhält. Im Safari hatte ich wie oben beschrieben, dass der Browser das Löschen des Cookies gar nicht versteht/annimmt und beim zweiten Request das bisherige Cookie wieder mit sendet. Vielleicht kommen wir damit in die Nähe des Problems...
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast