
Odlogování pomocí js
Mám aplikaci napsanou v LANSE. Ta má standardní lansácký login. Ten nemám možnost změnit. Potřebuju udělat logout (ten žel standardní nemá). A to tak, aby prohlížeč zapomněl všecky vyplněné údaje a při pokusu o uživatele dostat se zpět např. pomocí tlačítka Back vyžadoval opětné zadání jména a hesla. Nejlépe v js, event. v PHP. Musí fungovat v IE 6+, ale i v dalších hlavních prohlížečících (FF, Opera...).
Pro IE 7 funguje tohle:
document.execCommand("ClearAuthenticationCache");
Bohužel ačkoli Microsoft tvrdí, že to má fungovat v IE 6, tak v 6 to nefunguje , jen v 7.
Pro neIE prohlížeče jsem našla několik tipů, např.:
function createXMLObject() {
try {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
// code for IE
else if (window.ActiveXObject) {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
} catch (e) {
xmlhttp=false
}
return xmlhttp;
}
// Let's create an xmlhttp object
var xmlhttp = createXMLObject();
// Let's get the force page to logout for mozilla
xmlhttp.open("GET",".force_logout_offer_login_mozilla",true,"logout","logout");
// Let's send the request to the server
xmlhttp.send("");
// Let's abort the request
xmlhttp.abort();
// Let's redirect the user to the main webpage
window.location = "www.seznam.cz";
ale to mi nefunguje ani v FF, ani v Opeře .
Nemáte někdo tip na kód, který by opravdu fungoval?
Vyskúšal som to ClearAuthenticationCache v IE6 a IE7 - funguje v obidvoch. Ten druhý spôsob som vyskúšal vo FF a fungoval. Operu nemám k dispozícii a predpokladám, že tam to fungovať nebude.
Nevypisuje IE6 a FF nejakú inú chybu, kvôli ktorej to nejde (pretože by to tam malo fungovať)?
Ak testuješ, či to funguje alebo nie tak, že stlačíš tlačidlo Späť, tak to môže zobraziť predchádzajúcu stránku z keše. Ak nechceš stránky kešovať, tak musíš nastavovať správne HTTP hlavičky.
Můžeš to event. vyzkoušet na
www.bizdata.cz
Kliknout na PZ-online Slavia vývoj (3. ikonka v prvním řádku)
To odhlásenie vyzerá, že funguje. Jediný problém je to, že pri stlačení Späť sa načíta tá stránka z keše.
Skúsil by som nastaviť do hlavičky Cache-Control ešte pre-check=0, post-check=0, max-age=0.
Bohužel to nepomohlo
.