2012-04-05 17 views
1

So erkennen Sie, dass der Benutzer nicht abgemeldet ist, ohne auf die Schaltfläche zum Abmelden mit jQuery oder Javascript zu klicken.Wie erkennen Sie, dass der Benutzer nicht abgemeldet ist, ohne auf die Schaltfläche Abmelden geklickt zu haben?

Hier brauche ich die Abmelden-Schaltfläche, die angezeigt wird, wenn der Benutzer nicht abgemeldet wird, wenn die Zurück-Schaltfläche im Browser gedrückt wird, um zur vorherigen Seite zurückzukehren.

Hier ist meine Logout-Button:

<a id="webviewbtn" href="#"><img src="img/logout.png" style="float:right;" /></a>

+0

Wenn ein User nicht auf Logout-Button klickt, dann ist der User sicher nicht ausgeloggt oder? Oder meinst du etwas anderes? o_O –

+0

ich brauche, dass es auf meiner vorherigen Seite die Logout-Funktion erscheint – Raj

+0

Sie meinen den Zustand des Benutzers zu verfolgen? Sie müssen eine serverseitige Sprachhilfe verwenden –

Antwort

0

Wenn auf Ihrer Webseite jede Form der Aktion ausführt, einen Methodenaufruf Asynchron oder synchron ein Webservice, der den Benutzer überprüft.

Wenn der Server eine OK-Nachricht zurückgibt, ist der Benutzer immer noch angemeldet. Diese Aktion kann ausgeführt werden, wenn die Abmeldetaste gerendert wird oder wenn der Benutzer eine andere "wichtige" Aktion ausführt.

Sie können Informationen auch in einem Cookie mit einer Ablaufzeit speichern. Dies kann dann so gehandhabt werden, dass, wenn Sie den Backbutton im Browser drücken, der Cookie gelöscht wird und der Benutzer ausgeloggt ist oder was Sie haben.

Es gibt viele Möglichkeiten dieser Implementierung und leider habe ich hier keinen "Best Practice" -Fall.

+0

Leider nicht. Ich biete Ihnen Lösungen auf konzeptioneller Basis, nicht mit Code. Sie müssen eine Implementierung schreiben, die Ihren Anforderungen entspricht, und meinen Code nicht so ändern, dass er passt. –

1

Ich würde eine Methode bevorzugen, die keinen async-Aufruf an den Server benötigt, um Ressourcen zu sparen.

Sobald Sie angemeldet sind, wird Ihr System einen Cookie mit der Sitzungs-ID setzen. Sie können auch ein Cookie mit Ihrem Backend einrichten, mit dem Sie feststellen können, ob ein Kunde eingeloggt ist oder nicht.

//using php here 
setcookie('customer',1); //customer is logged in 

setcookie('customer',0); //customer is not logged in 

auf Ihrem Frontend Sie jquery/javascript verwenden für diesen Status zu überprüfen. Ich gehe davon aus hier haben Sie die jquery Cookie-Plugin https://github.com/carhartl/jquery-cookie enthalten

if ($.cookie('customer') === 1){ 
    $('#webviewbtn').show(); //show logout button 
} 
else{ 
    $('#webviewbtn').hide(); //no logout button needed 
} 

in diesem szenario es wirklich wichtig ist, dass der ‚Kunde‘ Cookie die gleiche Domäne und die gleiche Dauer wie das Session-Cookie hat. Andernfalls kann bei wiederkehrenden Kunden der Cookie für den Kunden noch auf 1 gesetzt werden, der Sitzungscookie ist jedoch bereits veraltet. Außerdem müssen alle vom Kunden angerufenen Aktionen im Backend verifiziert werden, um zu verifizieren, dass dort der Status Kunde === 1 noch gültig ist. Sonst hast du ein großes Sicherheitsproblem, da jeder den Cookie auf 1 setzen kann :)

+0

ya..ich werde versuchen .thanks für Ihre Informationen – Raj