Wir haben einen Webservice, mit dem sich Benutzer an- und abmelden können. Ein Cookie wird verwendet, um festzustellen, ob ein Benutzer angemeldet ist oder nicht.Wie läuft der Cookie ordnungsgemäß ab?
Der Dienst enthält mehrere "Sites", die jeweils durch eine Subdomäne identifiziert werden. Zum Beispiel:
http://customer1.ourservice.com/
http://customer2.ourservice.com/
Es gibt zwei Möglichkeiten, um sich anzumelden; entweder "service wide" oder "site specific".
"Dienstweite" Anmeldeanforderungen werden an eine spezielle Subdomäne gesendet (http://globalauth.ourservice.com/
). Ein solches Zeichen in Anfragen führen zu einem Set-Cookie
Header wie folgt aus:
Set-Cookie: OUR-COOKIE=<<cookie-value>>;
expires=Wed, 03 May 2017 11:25:58 GMT;
domain=.ourservice.com;
path=/;
httponly
(Zeilenumbrüche hier hinzugefügt, um es einfacher zu lesen)
Die domain=.ourservice.com
Einstellung macht das Cookie für alle Sub-Domains zur Verfügung.
"Site-spezifische" Anmeldeanforderungen werden an die standortspezifische Subdomäne gesendet. Sie führen zu einem Set-Cookie
Header wie folgt aus:
Set-Cookie: OUR-COOKIE=<<cookie-value>>;
expires=Wed, 03 May 2017 11:23:42 GMT;
path=/;
httponly
Sign out-Anforderungen werden immer an eine ortsspezifische Sub-Domain gesendet und sollen Cookies entfernen, für beide "Seiten-wide" Zeichen in und "site specific" Zeichen in.
ein Zeichen aus Anfrageergebnis in einem Set-Cookie
Header wie folgt aus:
Set-Cookie: OUR-COOKIE=;
expires=Mon, 02 May 2016 11:26:54 GMT;
path=/;
httponly,
OUR-COOKIE=;
expires=Mon, 02 May 2016 11:26:54 GMT;
domain=.ourservice.com;
path=/;
httponly
die Idee dabei ist, dass sowohl die ortsspezifische und das breite Service-Cookie wird gelöscht und abgelaufen.
Es funktioniert, wenn eine "Service Wide" Anmeldung verwendet wurde, funktioniert aber nicht, wenn eine "Site-spezifische" Anmeldung verwendet wurde.
Ein standortspezifisches Cookie wird einfach nicht aus dem Browser entfernt.
Wie weisen wir den Browser ordnungsgemäß an, den Cookie ablaufen zu lassen/entfernen, unabhängig davon, ob er mit einer domain
Einstellung ausgestellt wurde oder nicht?