it-swarm.com.de

Gibt es eine Möglichkeit, die Benutzeranmeldung zu überprüfen und an die Anmeldung zu senden?

Ich habe ein Plugin für meine eigene Site geschrieben, bei dem ich das Problem habe: "Nachdem sich der Benutzer auf der Site angemeldet hat, wenn er sich wieder abmeldet, wenn er auf die Schaltfläche" Zurück "klickt, wird die vorherige Seite anstelle der Anmeldeseite wieder angezeigt." Für dieses Problem habe ich es mit dem folgenden JS-Code behoben:

history.pushState(null, null, document.URL);
window.addEventListener('popstate', function () {
 history.pushState(null, null, document.URL);
});

Das Problem mit der Schaltfläche "Zurück" des Browsers wurde behoben, aber nach dem Hinzufügen des obigen js-Codes wurde ein neues Problem festgestellt, d. H. Die Schaltfläche "Zurück" des Browsers wurde vollständig deaktiviert.

Gibt es einen Haken, den ich in die Datei theme functions.php schreiben kann? , damit ich dieses Problem beheben kann, wenn der Benutzer nach dem Abmelden auf den Zurück-Button des Browsers klickt? Kann mir bitte jemand sagen, wie ich das Problem beheben kann?

Ich habe das untenstehende probiert, aber es funktioniert auch nicht:

<script>
   window.onhashchange = function() {
       <?php if( ! is_user_logged_in()) { $this->tewa_login(); } ?>
   }
<script>

was ist los PLZ kann mir jemand sagen!

1
Prasad Patel

Wenn sich ein Benutzer abmeldet , wird die aktuelle Benutzersitzung zerstört und es können keine neuen Seiten geladen werden, für die ein Benutzer angemeldet sein muss Mit der Schaltfläche "Zurück" in Ihrem Browser wird die Seite normalerweise aus dem lokalen Cache abgerufen. Es besteht keine Verbindung zum Server, um festzustellen, ob die aktuelle Sitzung noch gültig ist.

Sie müssen also feststellen, ob die Rücktaste gedrückt wurde, und in diesem Fall die Gültigkeit der Sitzung überprüfen. Dies bedeutet, dass ein Teil des Java-Skripts auf der Seite enthalten sein muss, da diese Aktion auf der Benutzerseite stattfinden muss. Ich bin kein Sicherheitsexperte, aber die übliche Methode zum Erkennen der Rücktaste lautet wie folgt:

window.onhashchange = function() {
 .. your action ..
 }

Es gibt einige Haken an dieser Methode. Jetzt müssen Sie den Server zurückrufen. Diese Frage wurde zuvor hier auf WPSE beantwortet.

2
cjbj

Nur ein Anhang zu @cjbj Antwort. Es kann dir helfen, deshalb schreibe ich das hier.

WordPress "Session" ist eigentlich ein Cookie. Es beginnt mit wordpress_logged_in

enter image description here

Sobald Sie sich abgemeldet haben:

enter image description here

Sobald Sie noch aktualisieren, wird es kein Cookie geben:

enter image description here

Also, was müssen Sie verstehen:

klickt er auf die Schaltfläche "Zurück" des Browsers, wird die vorherige Seite anstelle der Anmeldeseite erneut angezeigt ".

Dies ist kein Problem, das ist normal.

Wenn Sie die Standardeinstellung ändern möchten, aktualisieren Sie die JavaScript-Seite.

1
prosti