Support » Allgemeine Fragen » User automatisch abmelden bei Inaktivität

  • Gelöst Rolf

    (@rolinux)


    Hallo Forum,

    ich habe auf der Homepage einen Mitgliederbereich mit Passwortschutz. Funktioniert gut, nur habe ich das Problem, dass die User nicht automatisch bei Inaktivität abgemeldet werden.

    Ich habe das Plugin „Abmeldung inaktiver Benutzer“ installiert, um das zu erzwingen, allerdings funktioniert das nur, solange der User auf der Homepage ist und sich nicht „bewegt“. Wenn der User die Homepage ohne Abmeldung verlässt und den Browser schließt, kann es sein, dass er am nächsten Tag, wenn er die Homepage aufruft, noch angemeldet ist. Das Problem scheinen die Cookies zu sein, die nicht gelöscht werden. (Ich lösche in meinem Browser beim Beenden alle Cookies, deshalb habe ich das beim Testen nicht bemerkt.)

    Hat mir jemand ’nen Dipp, was ich da tun kann? Ich will auf jeden Fall verhindern, dass die User „ewig“ angemeldet bleiben. Ist ja auch ein Sicherheits- und Datenschutzproblem.

    Gruß
    Rolf

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Ist ja auch ein Sicherheits- und Datenschutzproblem.

    Wieso? 🙂

    Du kannst folgenden Code in der functions.php deines Child Themes (oder als Code Snippet) ausprobieren:

    add_filter('auth_cookie_expiration', 'my_expiration_filter', 99, 3);
    function my_expiration_filter($seconds, $user_id, $remember){
    
        //if "remember me" is checked;
        if ( $remember ) {
            //WP defaults to 2 weeks;
            $expiration = 14*24*60*60; //UPDATE HERE;
        } else {
            //WP defaults to 48 hrs/2 days;
            $expiration = 2*24*60*60; //UPDATE HERE;
        }
    
        //http://en.wikipedia.org/wiki/Year_2038_problem
        if ( PHP_INT_MAX - time() < $expiration ) {
            //Fix to a little bit earlier!
            $expiration =  PHP_INT_MAX - time() - 5;
        }
    
        return $expiration;
    }
    

    (Quelle: Stack Overflow)

    Die Werte musst du nach deinen Wünschen anpassen. Das Backend wird übrigens nach Ablauf der Zeit noch angezeigt, aber sobald du irgendwas anklickst, wird das Login-Fenster für die Neuanmeldung eingeblendet. Änderungen kannst du nicht mehr vornehmen.

    Denn Sinn verstehe ich trotzdem nicht so ganz … 

    Thread-Starter Rolf

    (@rolinux)

    Vielen Dank.

    Ich habe den Code mal mit dem genannten Plugin eingebaut. Allerdings kam dann gleich eine Fehlermeldung beim Logout. Ein Login war dann nicht mehr möglich, bis ich das Plugin durch Umbenennen des Plugin-Ordners via FTP deaktiviert habe. Ich habe das Plugin deinstalliert.

    Der Sinn ist, dass die Vereinsmitglieder, die sich im Mitgliederbereich anmelden können, vlt. vergessen, auf „Abmelden“ zu klicken und dann zwei Tage angemeldet bleiben. In dieser Zeit kann jeder, der Zugriff auf den Account z.B. am PC hat, die Homepage aufrufen und die eigentlich geschützten Daten anschauen.

    Eigentlich wäre es schön, wenn das im Backend direkt einstellbar wäre. Es würde ja nicht wehtun, wenn da weiterhin die zwei Tage vorbelegt wären.

    Ich habe den Code mal mit dem genannten Plugin eingebaut. Allerdings kam dann gleich eine Fehlermeldung beim Logout.

    Das kann ich nicht nachvollziehen. Ich habe gerade nochmal Code Snippets installiert, den o.g. Code hinzugefügt … alles wie es sein sollte. Bist du sicher, dass du das richtige Code Snippets-Plugin installiert hast?

    In dieser Zeit kann jeder, der Zugriff auf den Account z.B. am PC hat, die Homepage aufrufen und die eigentlich geschützten Daten anschauen.

    Deshalb solltest du auch nur eingeschränkte Rechte vergeben. Wer kein Admin ist, hat auch keinen Zugriff auf die Daten anderer BenutzerInnen. Inhalte können übergreifend nur geändert werden, wenn du RedakteurIn bist. Vielleicht solltest du eher die Rechtevergabe überdenken?

    Eigentlich wäre es schön, wenn das im Backend direkt einstellbar wäre.

    WordPress ist OpenSource. Du kannst gerne den Vorschlag machen, WordPress um diese Funktionalität zu ergänzen. Vermutlich wird man dir aber mitteilen, dass das eher Aufgabe eines Plugins wäre.

    Hast du mir mal Idle User Logout angeschaut?
    Da kannst du die Zeit im Backend angeben, wann User (je nach Benutzerrolle) ausgeloggt werden.

    Thread-Starter Rolf

    (@rolinux)

    Idle User Logout habe ich mir nicht angeschaut, weil da steht, dass es noch nicht mit meiner WordPress-Version (4.9.7) getestet wurde. Ich habe das Plugin „Abmelden inaktiver Benutzer“ installiert, aber das funktioniert nur solange der Besucher die Homepage im Browser geladen hat. Wenn er den Browser zu macht oder die Homepage verlässt, ohne sich abzumelden, funktioniert das nicht mehr.

    Gruß
    Rolf

    Idle User Logout habe ich mir nicht angeschaut, weil da steht, dass es noch nicht mit meiner WordPress-Version (4.9.7) getestet wurde.

    Das steht da, weil der/die Plugin-EntwicklerIn vermutlich noch keine Zeit gefunden hat (oder keine Lust hatte), sich darum zu kümmern. Probier’s trotzdem aus. Wenn’s nicht passt, kannst du es wieder rausschmeißen.

    Thread-Starter Rolf

    (@rolinux)

    Ich habe Idle User Login mal installiert, scheint zu funktionieren. Aber halt wieder nur solange, wie der User die Homepage im Browser hat. Ich habs trotzdem mal aktiv gelassen, besser als nix. Es spuckt auch keine Meldung aus wie das andere Plugin, was mir persönlich sympathischer ist.

    Das Plugin Code Snippet, das ich installiert habe, war das, was Du verlinkt hast.

    Es gibt das Plugin WP Login Timeout Settings, das anscheinend die Cookie-Lebensdauer setzen kann. Allerdings sind mir da die Bewertungen nicht gut genug. Es scheint da noch einige Probleme zu geben.

    Gruß
    Rolf

    So schlecht sind die Bewertungen doch gar nicht? Bei über tausend Installationen haben sich zwei Nutzer über einen (den gleichen) Fehler ausgekotzt, der vermutlich mit der Serverkonfiguration zusammen hängt.

    Du hast jetzt ein Code-Schnipsel (wieso der bei dir nicht funktionieren soll, verstehe ich immer noch nicht) und einen Plugin-Vorschlag, außerdem selbst noch eine Alternative gefunden – ich setze den Thread mal auf „gelöst“.

    Thread-Starter Rolf

    (@rolinux)

    Ja, ok.
    Ich habe jetzt doch mal das Plugin WP Login Timeout Settings probiert und es funktioniert.

    Vielen Dank für die Hilfe.

    Gruß
    Rolf

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Das Thema „User automatisch abmelden bei Inaktivität“ ist für neue Antworten geschlossen.